Здравствуйте, 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>>