Атрибут [DebuggerDisplay] ( Использование DebuggerDisplayAttribute ) позволяет определить отображение в Отладчике VS 2010/2008.Изменяя AutoExp.cs / .dll, я даже могу переопределить отображение системных типов и сторонних типов, например
[assembly: DebuggerDisplay (@"\{Name = {Name} FullName = {FullName}}", Target = typeof (Type))]
Во внутренних фигурных скобках я могу ссылаться на поля, свойства и методы.Можно ли ссылаться на методы расширения ?
В качестве примера я попытался отобразить более короткие имена типов, например $SCG.Dictionary
вместо System.Collections.Generic.Dictionary
.Я добавил это в AutoExp.cs:
using DbgDisp;
[assembly: DebuggerDisplay (@"\{Name = {Name} ShortName = {ShortName()}}", Target = typeof (Type))]
namespace DbgDisp {
public static class Ext {
public static string ShortName (this Type t) { return string.Format ("[{0}]", t.Name); }
} // Ext
} // DbgDisp
, но отладчик жалуется: Имя 'ShortName' не существует в текущем контексте.
Я пропалчто-то, или просто невозможно использовать там методы расширения?
Я знаю, что могу переопределить ToString ()
, но это помогает только для моих собственных типов.