使用C#在代码片段中创建新的Guid

5

我希望能够使用 Ctl K + Ctl X 创建一个智能感知代码片段,当它运行时实际上会执行代码...例如,我想要做到以下几点:

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

但是,我不想得到那个字符串值,我希望按照指定的格式获得日期。

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

如果不使用Intellisense Code Snippet也可以,我只是觉得那样很容易。

3个回答

2
这是我使用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

2
你知道在不支持宏的新版Visual Studio中有什么方法可以做到这一点吗? - Bradley Uffner

1

对于GUID,您可以使用:

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

0
为了实现您在XML块中尝试做的事情,您需要嵌入脚本语言引擎(如IronPython),或编写自己的简单引擎。C#源代码不是在运行时编译的,也不会在运行时评估源代码。IL字节码是这样做的,但人类可读的源代码不是。

在Visual Studio中,有一种基于C#的模板语言称为T4可供使用。 - Jimmy

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接