适用于任何 ICollection 和 ICollection 类型的调试器可视化工具

2024-01-03

我用网格创建了表单来可视化任何集合(ICollection, ICollection<T>) 目的。

之后我创建了调试器可视化器类(继承自Microsoft.VisualStudio.DebuggerVisualizers.DialogDebuggerVisualizer).

可视化工具已正确安装(我试了一下System.Collections.ArrayList class).

但我无法将可视化工具推广到任何ICollection/ICollection<T> type.

我指定的属性:

[assembly: DebuggerVisualizer( typeof( DebugerSide ), typeof( VisualizerObjectSource ), Target = typeof( System.Collections.Generic.ICollection<> ), Description = "Collection visualizer" )]
[assembly: DebuggerVisualizer( typeof( DebugerSide ), typeof( VisualizerObjectSource ), Target = typeof( System.Collections.ICollection ), Description = "Collection visualizer" )]

但VS在调试时不提供可视化工具。

如果我指定精确的类名,则可视化工具在 VS 中可用。有没有办法,如何实现我的意图或者没有办法,如何实现?

Thanks!


我认为您已经遇到了与 Visualizers 架构相同的限制在这个问题中概述。 https://stackoverflow.com/questions/346154/debugger-visualizer-not-working-have-i-incorrectly-registered-it

解决方法是为 System.WeakReference 创建一个可视化工具,然后在“监视”窗口中键入“new WeakReference(myCollectionVariable)”,然后您将能够在弱引用上打开调试可视化工具。在调试可视化工具中,您可以使用反射来找出变量的确切类型,并对其执行任何您想要的操作。

也可以看看this http://joshsmithonwpf.wordpress.com/2008/01/20/the-rock-star-hack-of-2008/.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

适用于任何 ICollection 和 ICollection 类型的调试器可视化工具 的相关文章

随机推荐