Я работаю со сторонней библиотекой, которая создает NameObjectCollectionBase
полученную карту пар имя-объект. Коллекция иногда бывает большой (тысячи предметов), и я хотел бы использовать отладчик VS 2008 для проверки предметов в ней. (Я не ищу определенный элемент на карте, я пытаюсь увидеть, выглядит ли список элементов так, как я ожидаю.) Карта содержит NameObjectEntry
экземпляров. Когда я проверяю эту карту в отладчике, вот что я вижу:
[0] {System.Collections.Specialized.NameObjectCollectionBase.NameObjectEntry}
[1] {System.Collections.Specialized.NameObjectCollectionBase.NameObjectEntry}
...
[191] {System.Collections.Specialized.NameObjectCollectionBase.NameObjectEntry}
[192] {System.Collections.Specialized.NameObjectCollectionBase.NameObjectEntry}
Мне интересно, есть ли способ сообщить отладчику, как форматировать NameObjectEntry
, чтобы показать мне данные внутри экземпляра, а не имя типа. Что-то вроде:
[0] {"key1","value1"}
[1] {"key2","value2"}
...
[191] {"key191","value191"}
[192] {"key192","value192"}
С моими собственными классами я мог бы либо переопределить ToString()
, либо использовать атрибут DebuggerDisplay
, но NameObjectEntry
является частью .NET Framework, я не могу его изменить. К сожалению, результаты поиска в основном рекомендуют один из этих двух.
Могу ли я что-нибудь сделать, чтобы отладчик показывал этот объект определенным образом?
Редактировать : для будущих читателей было решено использовать файл autoexp.cs
, поставляемый с VS, как описано здесь:
http://msdn.microsoft.com/en-us/library/x810d419%28VS.90%29.aspx