- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我有一个定义了 DebuggerDisplay 属性的 DataTable 的后代。当我添加 DebuggerDisplay 属性时,DataTable 的默认可视化工具被删除。如果我删除 DebuggerDisplay 属性,DataTable 可视化工具将返回。我想要默认的 DataTable 可视化工具和我对 DebuggerDisplay 的覆盖。
你们知道如何让它工作吗?
//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{}
最佳答案
澄清一下,我不知道为什么派生和指定不同的属性会禁用可视化工具。
我已经尝试过类似的方法,没有什么能阻止您将 DebuggerDisplay
和 DebuggerVisualizer
应用于一个类型。下图显示了两者,左圈是调试器可视化工具,右圈是调试器显示:
但是,您可能会在尝试在类中使用 DataSetVisualizer
类型时遇到问题。这花了 很多 jiggery-pokery,但我最终为我的类(class)定义了以下内容:
[Serializable]
[DebuggerVisualizer(typeof(EnhancedDataSetVisualizer.DataSetVisualizer),
typeof(EnhancedDataSetVisualizer.DataSetVisualizerSource))]
[DebuggerDisplay("{Name}")]
public sealed class SpecFlowTableWrapper : DataSet
{
// Body omitted, not important.
}
我经常不得不更改我在 DebuggerVisualizer
中指定的参数。原来我缺少的部分是指定 VisualizerObjectSource
。
然后我让调试器显示我的数据集名称,当我单击放大镜时它会加载 DataSetVisualizer
。
所有这一切的重要部分是两个引用:
这包含 DataSetVisualizer
和 DataSetVisualizerSource
类型。
这是另一个引用的依赖。
第二项通常在 Visual Studio 的“添加引用...”对话框中可用,但第一项位于 VS 安装目录中。
对我来说(VS 版本可能不同):
C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\Packages\Debugger\Visualizers\
调用:
Microsoft.VisualStudio.Debugger.DataSetVisualizer.dll
确保“复制本地”对于第一个引用也是正确的(默认情况下它应该是正确的)。请注意,对于调试,此引用现在是一个依赖项,因此您需要确保它位于您正在调试的任何项目的工作目录中,否则您会收到 VS 调试器错误。
重新构建,启动调试器,享受吧。抱歉,晚了 2 年。
关于c# - 具有 DebuggerDisplay 属性的 DataTable 后代丢失 DebuggerVisualizer,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1555115/
项目因缺少程序集而无法编译。导致错误的文件有一个 using Microsoft.VisualStudio.DebuggerVisualizers; VisualStudio 部分用红色标记。我必须安
一个非常愚蠢的问题,但我根本找不到答案。 我有一个实现 IList 的自写类界面。现在我喜欢在 Debugging 中查看包含的元素,就像使用任何 .Net List 一样。 . 为了让它工作,我认为
我有一个定义了 DebuggerDisplay 属性的 DataTable 的后代。当我添加 DebuggerDisplay 属性时,DataTable 的默认可视化工具被删除。如果我删除 Debug
我是一名优秀的程序员,十分优秀!