В попытке приятно отобразить содержимое Dictionary
, я написал это:
[assembly: DebuggerDisplay("{Key,nq} -> {Value,nq}", Target = typeof(KeyValuePair<,>))]
namespace test {
[DebuggerDisplay("{DebuggerDisplay,nq}")]
public class Thing {
private readonly int _num;
public string DebuggerDisplay => $"DBG: {_num}";
public Thing(int num) => _num = num;
}
public class Program {
static void Main(string[] args) {
var map = new Dictionary<string,Thing> {
["Foo"] = new Thing(1),
["Bar"] = new Thing(2),
};
}
}
}
И я бы ожидал увидеть в отладчике это:
Foo -> DBG: 1
Bar -> DBG: 2
Но вместо этого я вижу это:
Foo -> {test.Thing}
Bar -> {test.Thing}
Стоит отметить, что если я расшифрую KeyValuePair
s, я вижу, что:
Name | Value
--------+-------
Key | "Foo"
Value | DBG: 1
Так что DebuggerDisplay
работает.
Итак, проблема в том, как отобразить содержимое составного типа в основном списке просмотра содержимого словаря?