是否可以使用 EnvDTE 进行 .vsix Visual Studio 扩展来捕获本地和调试窗口使用的调试数据?或者可以通过其他方法吗?
我想创建一个自定义的本地窗口,我们可以修改它以根据需要显示一些较重的内容,而无需为高级用户牺牲原始的本地窗口。理想的解决方案是获取发送到本地窗口的数据,以便我可以构建自己的树。
事实证明这其实很简单!
DTE dte = (DTE).Package.GetGlobalService(typeof(DTE));
if(dte.Debugger.CurrentStackFrame != null) // Ensure that debugger is running
{
EnvDTE.Expressions locals = dte.Debugger.CurrentStackFrame.Locals;
foreach(EnvDTE.Expression local in locals)
{
EnvDTE.Expressions members = expression.DataMembers;
// Do this section recursively, looking down in each expression for
// the next set of data members. This will build the tree.
// DataMembers is never null, instead just iterating over a 0-length list.
}
}
每个表达式包含:
-
Name(细绳)
-
Value(本地窗口中显示的字符串值)
-
Type(类型的字符串名称)
-
Parent(类型是父类型)
-
数据成员(其子级的可迭代集合(从不为空))
-
IsValid (bool)
希望这可以帮助其他想要做类似事情的人!
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)