Re[2]: Как получить экземпляр TypeConverter указанный в атри
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 23.07.08 09:41
Оценка:
Здравствуйте, WareZzhKa, Вы писали:

WZK>Но как быть с полем класса? как для него получить тот TypeConverter который указан в атрибуте?


Получаешь экземпляр TypeConverterAttribute, далее Type.GetType(attr.ConverterTypeName), далее Activator.CreateInstance().

Более хитрый код легко подсмотреть рефлектором:
public virtual TypeConverter Converter
{
    get
    {
        AttributeCollection attributes = Attributes;
        if (converter == null)
        {
            TypeConverterAttribute attribute = (TypeConverterAttribute) attributes[typeof(TypeConverterAttribute)];
            if ((attribute.ConverterTypeName != null) && (attribute.ConverterTypeName.Length > 0))
            {
                Type typeFromName = GetTypeFromName(attribute.ConverterTypeName);
                if ((typeFromName != null) && typeof(TypeConverter).IsAssignableFrom(typeFromName))
                    converter = (TypeConverter) CreateInstance(typeFromName);
            }
            if (converter == null)
                converter = TypeDescriptor.GetConverter(this.PropertyType);
        }
        return this.converter;
    }
}
... << RSDN@Home 1.2.0 alpha 4 rev. 1095 on Windows Vista 6.0.6001.65536>>
AVK Blog
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.