创建类时,可以将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.

只要该类(class)是我们的工作,就可以使用。但是,如何为无法修改源代码的类提供自定义TypeConverter?例如,如何为System.Version类(没有一个)提供自定义TypeConverter?

最佳答案

您可以在运行时执行此操作。使用这些类:

class MyConverter : TypeConverter
{
}

sealed class MyClass
{
}

您可以使用:
TypeDescriptor.AddAttributes(typeof(MyClass), new TypeConverterAttribute(typeof(MyConverter)));

08-28 12:51