gpt4 book ai didi

.net - DebuggerDisplay 属性是否可以应用于不属于自己的类型?

转载 作者:行者123 更新时间:2023-12-02 09:03:58 26 4
gpt4 key购买 nike

我喜欢 DebuggerDisplay 属性。我非常喜欢它,所以我想在我没有源代码的类型上使用它。

这可能吗?

最佳答案

为外部类型设置 DebuggerDisplay 的示例 (System.Collections.Generic.KeyValuePair ) 将以下内容添加到 AssemblyInfo.cs:

using System.Collections.Generic;
using System.Diagnostics;

[assembly: DebuggerDisplay("[Key={Key}, Value={Value}]", Target = typeof(KeyValuePair<,>))]

(在VS2015中测试)

<小时/>

编辑 2020 年:

无法在 VS2019 中重现 KeyValuePair<,> 的上述内容,但它似乎与 KeyValuePair<,> 有关。

对于非拥有类型的私有(private)成员,请尝试这样的操作

类库1:

//using System.Diagnostics;

namespace ClassLibrary1
{
//[DebuggerDisplay("Foo.Bar={Bar}")] // works too for types you own
public class Foo
{
private int Bar = 42;
}
}

ConsoleApp1:

using System.Diagnostics;
using System.Reflection;
using ClassLibrary1;

[assembly: DebuggerDisplay("Foo.Bar={FooDebuggerDisplay.Bar(this)}", Target=typeof(Foo))]

class FooDebuggerDisplay
{
public static int Bar(Foo foo) => (int)foo.GetType().GetField("Bar",BindingFlags.Instance|BindingFlags.NonPublic).GetValue(foo);
}

namespace ConsoleApp1
{
class Program
{
static void Main(string[] args)
{
var foo = new Foo();
Debugger.Break();
}
}
}

(在VS2019中测试)

关于.net - DebuggerDisplay 属性是否可以应用于不属于自己的类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4469001/

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