C# 使用c在代码段内创建新Guid#
我想使用Ctl K+Ctl X制作一个intellisense代码段,它在运行时实际执行代码。。。例如,我想做以下工作: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-
<![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中有什么方法可以做到这一点吗?