Использование методов расширения в [DebuggerDisplay] Attribute

Атрибут [DebuggerDisplay] ( Использование DebuggerDisplayAttribute ) позволяет определять отображение в отладчике VS 2010 / 2008 г. Изменяя AutoExp.cs / .dll, я могу даже переопределить отображение системных типов и сторонних типов, например,

[assembly: DebuggerDisplay (@"\{Name = {Name} FullName = {FullName}}", Target = typeof (Type))]

Во внутренних фигурных скобках я могу ссылаться на поля, свойства и методы. Можно ли ссылаться на методы расширения ?

В качестве примера я попытался отобразить более короткие имена типов, например $ SCG.Dictionary вместо System.Collections.Generic .Словарь . Я добавил это в 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 () , но это помогает только для моих собственных типов.

8
задан MillKa 9 April 2011 в 10:34
поделиться