我有几个定义DebuggerDisplay属性的类。我想知道是否有一种方法可以基于另一个属性来定义一个DebuggerDisplay属性。如果我有以下类(class):

[DebuggerDisplay ("Text = {Text}")]
class A
{
    public string Text {get;set;}
}

[DebuggerDisplay ("Property = {Property}")]
class B
{
    public A Property {get; set;}
}

我想在B实例上看到A类,因为它是在A类DebuggerDisplay属性上定义的。取而代之的是,我在查看B类对象时将A类ToString()方法放到了调试器上。

最佳答案

不知道我是否正确理解了您的问题,但是请尝试:

[DebuggerDisplay("Property = {Property.Text}")]
public class B
{
    public A Property { get; set; }
}

这将显示A的Text属性。

如果需要更复杂的控制,可以使用DebuggerTypeProxyAttribute

10-08 16:28