2009-07-21 8 views
5

Erstellen I IntelliSense-Codeausschnitt mit Ctl K + Ctl X machen möchten, die Code tatsächlich ausgeführt wird, wenn es ... zum Beispiel läuft, würde Ich mag folgendes tun:einen neuen Guid in einem Code-Schnipsel mit C#

<![CDATA[string.Format("{MM/dd/yyyy}", System.DateTime.Now);]]> 

Aber anstatt mir diesen String Wert, möchte ich das Datum im angegebenen Format.

Ein anderes Beispiel von dem, was ich will, ist eine neue Guid erstellen, aber auf das erste Oktett abgeschnitten, also würde ich eine neue Guid mit System.Guid.NewGuid() verwenden möchten; um mir beispielsweise {798400D6-7CEC-41f9-B6AA-116B926802FE} zu geben, aber ich möchte den Wert: 798400D6 aus dem Code-Snippet.

Ich bin offen für die Verwendung eines Intellisense Code Snippet .. Ich dachte nur, das wäre einfach.

Antwort

2

Dies ist, was ich Macro

Public Sub InsertPartialGuid()    
     Dim objSel As TextSelection = DTE.ActiveDocument.Selection   
     Dim NewGUID As String = String.Format("{0}", (System.Guid.NewGuid().ToString().ToUpper().Split("-")(0))) 
     objSel.Insert(NewGUID, vsInsertFlags.vsInsertFlagsContainNewText) 
     objSel = Nothing 
    End Sub 
+1

Kennen Sie eine Möglichkeit, dies in neueren Versionen von Visual Studio zu tun, die keine Makros unterstützen? –

1

Für die GUID können Sie verwenden:

string firstOctet = System.Guid.NewGuid().ToString().Split('-')[0]; 
0

Um das zu erreichen, was Sie versuchen, mit Ihren XML-Block zu tun, Sie gehen entweder zu brauchen eine Skriptsprache Motor wie Ironpython einbetten, oder schreibe deine eigene einfache Engine. C# -Quellcode wird zur Laufzeit nicht kompiliert, und der Quellcode wird zur Laufzeit nicht ausgewertet. Der IL-Bytecode ist, aber nicht der für Menschen lesbare Quellcode.

+0

in Visual Studio statt mit einem VS hat, gibt es eine C# Templating Sprache T4 genannt -basierte Sie nutzen könnten. – Jimmy

Verwandte Themen