Атрибут TypeConverter для сторонних классов
при создании класса к нему можно применить атрибут TypeConverter.т. использование TypeDescriptor.GetConverter(typeof (T)) возвращает пользовательский преобразователь типов. Например:
[TypeConverter(typeof(FooConverter))]
public class Foo
{...}
public class FooConverter: TypeConverter
{...}
var tc = TypeDescriptor.GetConverter(typeof(T)); //returns a FooConverter instance.
это работает до тех пор, пока класс наших решений. Но как предоставить пользовательский TypeConverter для класса, который мы не можем изменить исходный код? Например, как можно предоставить пользовательский TypeConverter для системы.Класс версии (у которого его нет)?
1 ответов
Вы можете сделать это во время выполнения. С этими классами:
class MyConverter : TypeConverter
{
}
sealed class MyClass
{
}
Вы можете использовать:
TypeDescriptor.AddAttributes(typeof(MyClass), new TypeConverterAttribute(typeof(MyConverter)));