gpt4 book ai didi

c# - 控制 .NET BCL 类型在调试器中显示的方式(对 KeyValuePair(TKey, TValue) 感兴趣)

转载 作者:行者123 更新时间:2023-12-02 20:31:20 25 4
gpt4 key购买 nike

这里有一个关于在 KeyValuePair(TKey, TValue) 中重写 ToString() 的问题,这是不可能的。

我看到有一些属性类型,例如 DebuggerDisplayAttribute、DebuggerTypeProxyAttribute,它们可以控制类型在调试器中的显示方式。我只使用调试器可视化工具。

从逻辑上讲,这些属性只能应用于用户定义的类(我认为除了部分类)。

那么有什么方法可以控制 Visual Studio 中内置 (BCL) .NET 类型的调试结果吗?

编辑:为了使它更清楚一点,我主要对类型的字符串表示形式感兴趣。它有点“覆盖”ToString(),只是为了调试。

最佳答案

前段时间我写了一篇关于reading SQL exception dumps的帖子我在其中使用可视化工具 System.Data.SqlClient.SqlParameter )。您可以阅读整篇文章的工作示例,但在您的情况下,需要执行以下步骤:

在文件夹C:\Users\<your login>\Documents\<your Visual Studio version>\Visualizers中有一个名为 autoexp.cs 的特殊文件它存储您的本地可视化工具设置(使用 DebuggerDisplayAttribute 定义)。如果您找不到此文件,您可以从 <Visual Studio installation folder>\Common7\Packages\Debugger\Visualizers\Original\ 安全地复制它。然后,您可以在此文件末尾附加新规则:

[assembly: DebuggerDisplay(@"\{MyKey = {Key}\}", Target = typeof(System.Collections.Generic.KeyValuePair<,>))]

最后需要重新编译文件:

csc /t:library autoexp.cs

并重新启动 Visual Studio。 KeyValuePair 的新字符串表示形式应该出现在 VS 调试器中。

关于c# - 控制 .NET BCL 类型在调试器中显示的方式(对 KeyValuePair(TKey, TValue) 感兴趣),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12704757/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com