我想使用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 Code Snippet ..我只是觉得这很容易。
答案 0 :(得分:2)
这是我使用VS 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 :(得分:1)
对于GUID,您可以使用:
string firstOctet = System.Guid.NewGuid().ToString().Split('-')[0];
答案 2 :(得分:0)
要实现您尝试使用XML块执行的操作,您需要嵌入脚本语言引擎(如IronPython)或编写自己的简单引擎。 C#源代码不是在运行时编译的,也不是在运行时评估源代码。 IL字节码是,但不是人类可读的源代码。