Можно ли переопределить дескриптор типа для существующего типа .net? - PullRequest
3 голосов
/ 17 января 2011

Или, точнее,

1) Можно ли назначить дескриптор типа свойству

2) Если это так, как лучше всего получить преобразователь типа во время выполнения.

В основном у меня есть объекты конфигурации, которые заполняются с помощью отражения. Пока это работает только для простых типов (string, int, datetime), но я хотел поддержать преобразование разделенных запятыми списков в List.

До сих пор я достиг этого, извлекая пользовательский тип "ConvertableList<T>" из List<T> и декорируя его с помощью моего собственного конвертера типов.

1 Ответ

7 голосов
/ 17 января 2011

Вы можете связать TypeConverter с существующими типами, такими как:

    TypeDescriptor.AddAttributes(typeof(List<int>),
        new TypeConverterAttribute(typeof(MyTypeConverter)));

(где-то во время запуска)

Затем получить конвертер, стандартный коддолжно работать:

    TypeConverter conv = TypeDescriptor.GetConverter(typeof(List<int>));

или:

    object obj = new List<int>();
    ...
    TypeConverter conv = TypeDescriptor.GetConverter(obj);
...