При создании класса к нему может быть применен атрибут TypeConverter s.t. используя 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 для класса System.Version(который его не имеет)?