我创建了带有网格的表单来可视化任何集合(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在debug中没有提供可视化工具。
如果我指定了精确的类名,可视化工具在VS中是可用的。有没有办法,如何实现我的意图,还是没有办法,如何实现它?
谢谢!
发布于 2011-07-12 00:01:44
我认为您已经遇到了与outlined in this question.相同的可视化工具架构的限制
解决方法是为System.WeakReference创建一个可视化工具,然后在监视窗口中键入"new WeakReference(myCollectionVariable)",然后您就可以在弱引用上打开调试可视化工具了。在您的调试可视化工具中,您可以使用反射来找出变量的确切类型,并随心所欲地处理它。
另请参见this。
发布于 2013-04-19 17:27:12
我想这将会工作得很好。
[assembly: DebuggerVisualizer( typeof( DebugerSide ), typeof( VisualizerObjectSource ), typeof(Collection), Description = "Collection visualizer" )]
https://stackoverflow.com/questions/6506819
复制相似问题