C# 具有DebuggerDisplay属性的DataTable子体将丢失DebuggerVisualizer
我有一个定义了DebuggerDisplay属性的DataTable的后代。添加DebuggerDisplay属性时,DataTable的默认可视化工具将被删除。如果删除DebuggerDisplay属性,DataTable可视化工具将返回。我想要默认的DataTable可视化工具和DebuggerDisplay的覆盖 你们知道怎么让它工作吗C# 具有DebuggerDisplay属性的DataTable子体将丢失DebuggerVisualizer,c#,datatable,visualizer,debuggerdisplay,C#,Datatable,Visualizer,Debuggerdisplay,我有一个定义了DebuggerDisplay属性的DataTable的后代。添加DebuggerDisplay属性时,DataTable的默认可视化工具将被删除。如果删除DebuggerDisplay属性,DataTable可视化工具将返回。我想要默认的DataTable可视化工具和DebuggerDisplay的覆盖 你们知道怎么让它工作吗 //does not work //[DebuggerVisualizer("Microsoft.VisualStudio.Debugger.Da
//does not work
//[DebuggerVisualizer("Microsoft.VisualStudio.Debugger.DataSetVisualizer", typeof(DataTable))]
//DebuggerDisplay attribute removes DataTable visualizer. Odd behavior to me.
[DebuggerDisplay("{TableName}, Count = {Rows.Count}, {GetColumnNames()}")]
public class MyTable<T> : DataTable where T : class{}
//不起作用
//[调试可视化工具(“Microsoft.VisualStudio.Debugger.DataSetVisualizer”,类型(DataTable))]
//DebuggerDisplay属性删除DataTable可视化工具。我觉得奇怪。
[调试程序显示(“{TableName},Count={Rows.Count},{GetColumnNames()}”)]
公共类MyTable:DataTable,其中T:class{}
我只是想澄清一下,我不知道为什么派生和指定不同的属性会禁用可视化工具
我尝试过类似的方法,但没有什么能阻止您将DebuggerDisplay
和DebuggerVisualizer
应用于类型。下图显示了两者,左圆圈是调试器可视化工具,右圆圈是调试器显示:
但是,尝试在类中使用DataSetVisualizer
类型可能会遇到问题。这花了很多时间玩jiggery扑克,但我最终为我的班级下了以下定义:
[Serializable]
[DebuggerVisualizer(typeof(EnhancedDataSetVisualizer.DataSetVisualizer),
typeof(EnhancedDataSetVisualizer.DataSetVisualizerSource))]
[DebuggerDisplay("{Name}")]
public sealed class SpecFlowTableWrapper : DataSet
{
// Body omitted, not important.
}
我经常不得不更改在调试可视化工具中指定的参数。原来我缺少的部分是指定VisualizerObjectSource
然后,调试器显示了我的数据集名称,当我单击放大镜时,它将加载DataSetVisualizer
所有这些中的重要部分是两个参考:
- Microsoft.VisualStudio.Debugger.DataSetVisualizer
DataSetVisualizer
和DataSetVisualizerSource
类型
- Microsoft.VisualStudio.DebuggerVisualizers
重新构建,启动调试器,尽情享受。抱歉晚了两年。哦,看来没人能回答这个问题。关闭。有点晚,但已解决:-)