Search code examples
c#.netdebuggerdisplay

Chaining DebuggerDisplay on complex types


I have several classes defining the DebuggerDisplay attribute. I want to know if there is a way to define one DebuggerDisplay attribute based on another one. If I have the following classes:

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

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

I would like to see on instances of B the A class as it is defined on the class A DebuggerDisplay attribute. Instead of that I'm getting the class A ToString() method onto the debugger while viewing class B objects.


Solution

  • Not sure if I understood your problem correctly but try:

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

    This will Display the A's Text property.

    If you need more complex control you can use DebuggerTypeProxyAttribute