C# 使用c在代码段内创建新Guid#

C# 使用c在代码段内创建新Guid#,c#,code-snippets,C#,Code Snippets,我想使用Ctl K+Ctl X制作一个intellisense代码段,它在运行时实际执行代码。。。例如,我想做以下工作: <![CDATA[string.Format("{MM/dd/yyyy}", System.DateTime.Now);]]> 但是,我希望日期采用指定的格式,而不是给我那个字符串值 我想要的另一个例子是创建一个新的Guid,但截断到第一个八位字节,因此我希望使用System.Guid.NewGuid()创建一个新的Guid;例如,给我{798400D6-

我想使用Ctl K+Ctl X制作一个intellisense代码段,它在运行时实际执行代码。。。例如,我想做以下工作:

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

但是,我希望日期采用指定的格式,而不是给我那个字符串值

我想要的另一个例子是创建一个新的Guid,但截断到第一个八位字节,因此我希望使用System.Guid.NewGuid()创建一个新的Guid;例如,给我{798400D6-7CEC-41f9-B6AA-116B926802FE},但我想从代码片段中得到值:798400D6


我愿意不使用Intellisense代码片段。。我只是觉得这很简单。

对于GUID,您可以使用:

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

要实现XML块的功能,您需要嵌入一个脚本语言引擎,比如IronPython,或者编写自己的简单引擎。C#源代码不会在运行时编译,也不会在运行时评估源代码。IL字节码是,但不是人类可读的源代码。

这是我用VS宏所做的

  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

在Visual Studio中,可以使用一种基于C#的模板语言T4。您知道在不支持宏的较新版本的Visual Studio中有什么方法可以做到这一点吗?