我用网格创建了表单来可视化任何集合( ICollection
, ICollection<T>
)对象。
之后我创建了调试器可视化类(从 Microsoft.VisualStudio.DebuggerVisualizers.DialogDebuggerVisualizer
继承)。
可视化器已正确安装(我在 System.Collections.ArrayList
类上尝试过)。
但是我在将可视化器推广到任何 ICollection
时遇到问题/ICollection<T>
类型。
我指定了属性:
[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 中可用。有没有办法,如何实现我的意图或没有办法,如何实现?
谢谢!
最佳答案
我认为您已经偶然发现了与 outlined in this question. 相同的 Visualizers 架构限制。
解决方法是为 System.WeakReference 创建一个 Visualizer,然后在 Watch 窗口中键入“new WeakReference(myCollectionVariable)”,然后您就可以在弱引用上打开调试可视化器。在您的调试可视化器中,您可以使用反射来找出变量的确切类型,并使用它做任何您想做的事情。
另见 this .
关于visual-studio - 任何 ICollection 和 ICollection<T> 类型的调试器可视化工具,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6506819/