クラスを作成するときに、TypeDescriptor.GetConverter(typeof(T))を使用してTypeConverter属性をクラスに適用し、カスタム型コンバーターを返すことができます。例えば:
[TypeConverter(typeof(FooConverter))]
public class Foo
{...}
public class FooConverter: TypeConverter
{...}
var tc = TypeDescriptor.GetConverter(typeof(T)); //returns a FooConverter instance.
これは、クラスが私たちの作成である限り機能します。しかし、ソースコードを変更できないクラスにカスタムTypeConverterをどのように提供するのでしょうか。たとえば、System.Versionクラス(これはありません)にカスタムTypeConverterをどのように提供しますか?