Visual Studio -- 获取任务列表的评论标记
Visual Studio -- get comment tokens of Task list
我正在尝试获取我在 VS2015 的任务列表中定义的所有评论标记的列表。
我得到 TaskList
并且我能够在调试器中看到所有注释标记,如 TODO、HACK 等 - 但我找不到以编程方式访问它们的方法。
DTE2 dte = (DTE2)Package.GetGlobalService(typeof(DTE));
TaskList tl = dte.ToolWindows.TaskList;
In Debugger ----------------------------------------------------------------------
TaskList tl
-- CommentTokens Count = 4
-- [0] {Microsoft.VisualStudio.ErrorListPkg.Shims.CommentTaskToken}
-- IsDefault true bool
-- Priority Normal Microsoft.VisualStudio.Shell.CommentTaskPriority
-- Text "TODO" string
-- [1] {Microsoft.VisualStudio.ErrorListPkg.Shims.CommentTaskToken}
...
TaskList.TaskItems
仅 returns VS-TaskList 中显示的项目-Window.
由于 TaskList
只是一个接口,您必须解包它的实现才能获得 CommentTokens
属性。找不到目标类型的任何参考,但您是否尝试在 Debug window 中 select CommentTokens
或 TaskList
并将它们添加到 Watch?您可以为它们找到一个真实类型,然后将 dte.ToolWindows.TaskList
转换为正确的类型。之后你将能够获得 CommentTokens
collection.
建议编辑被拒绝,所以我自己添加信息:
编辑:解决方案是创建一个 dymanic
变量,用 dte.ToolWindows.TaskList
赋值并得到 CommentTokens
属性.
DTE2 dte = (DTE2)Package.GetGlobalService(typeof(DTE));
TaskList tl = dte.ToolWindows.TaskList;
dynamic commentTokens = ((dynamic)tl).CommentTokens;
// getting the token from the TaskList
foreach(dynamic token in commentTokens) {
tokens.Add(token.Text);
}
我正在尝试获取我在 VS2015 的任务列表中定义的所有评论标记的列表。
我得到 TaskList
并且我能够在调试器中看到所有注释标记,如 TODO、HACK 等 - 但我找不到以编程方式访问它们的方法。
DTE2 dte = (DTE2)Package.GetGlobalService(typeof(DTE));
TaskList tl = dte.ToolWindows.TaskList;
In Debugger ----------------------------------------------------------------------
TaskList tl
-- CommentTokens Count = 4
-- [0] {Microsoft.VisualStudio.ErrorListPkg.Shims.CommentTaskToken}
-- IsDefault true bool
-- Priority Normal Microsoft.VisualStudio.Shell.CommentTaskPriority
-- Text "TODO" string
-- [1] {Microsoft.VisualStudio.ErrorListPkg.Shims.CommentTaskToken}
...
TaskList.TaskItems
仅 returns VS-TaskList 中显示的项目-Window.
由于 TaskList
只是一个接口,您必须解包它的实现才能获得 CommentTokens
属性。找不到目标类型的任何参考,但您是否尝试在 Debug window 中 select CommentTokens
或 TaskList
并将它们添加到 Watch?您可以为它们找到一个真实类型,然后将 dte.ToolWindows.TaskList
转换为正确的类型。之后你将能够获得 CommentTokens
collection.
建议编辑被拒绝,所以我自己添加信息:
编辑:解决方案是创建一个 dymanic
变量,用 dte.ToolWindows.TaskList
赋值并得到 CommentTokens
属性.
DTE2 dte = (DTE2)Package.GetGlobalService(typeof(DTE));
TaskList tl = dte.ToolWindows.TaskList;
dynamic commentTokens = ((dynamic)tl).CommentTokens;
// getting the token from the TaskList
foreach(dynamic token in commentTokens) {
tokens.Add(token.Text);
}