Visual studio 任何ICollection和ICollection的调试器可视化工具<;T>;类型

Visual studio 任何ICollection和ICollection的调试器可视化工具<;T>;类型,visual-studio,debugging,debuggervisualizer,Visual Studio,Debugging,Debuggervisualizer,我使用网格创建表单,以可视化任何集合(ICollection,ICollection)对象 之后,我创建了调试器可视化工具类(继承自Microsoft.VisualStudio.DebuggerVisualizers.DialogDebuggerVisualizer) 可视化工具已正确安装(我在System.Collections.ArrayListclass上试用过) 但是我无法将可视化工具推广到任何ICollection/ICollection类型 我指定了属性: [assembly: De

我使用网格创建表单,以可视化任何集合(
ICollection
ICollection
)对象

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

可视化工具已正确安装(我在
System.Collections.ArrayList
class上试用过)

但是我无法将可视化工具推广到任何
ICollection
/
ICollection
类型

我指定了属性:

[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" )]
[汇编:DebuggerVisualizer(typeof(DebugerSide)、typeof(VisualizationRobjectSource)、Target=typeof(System.Collections.Generic.ICollection)、Description=“Collection visualizer”)]
[程序集:DebuggerVisualizer(typeof(DebugerSide)、typeof(VisualizationRobjectSource)、Target=typeof(System.Collections.ICollection)、Description=“Collection visualizer”)]
但是VS在调试中没有提供可视化工具

如果我指定exactl类名,可视化工具在VS中可用。有没有办法,如何执行我的意图,或者没有办法,如何实现它


谢谢

我认为您遇到了可视化工具体系结构与

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


另请参见。

我想这会很好用的

[assembly: DebuggerVisualizer( typeof( DebugerSide ), typeof( VisualizerObjectSource ), typeof(Collection), Description = "Collection visualizer" )]

非常感谢。这个变通方法看起来有点疯狂。但这可能是实现我的目的的唯一途径。问题是您无法为泛型类创建可视化工具,或者您无法为两个“不同”类型注册相同的可视化工具?调试器可视化工具仅在类(System.Array和System.Object除外)上对接口类型无效。您必须指定一个特定的类。您可以为泛型类创建可视化工具,但支持仅限于打开泛型类型-如@Omer Raviv所述:您的提示似乎是唯一可行的方法。谢谢你的回答!