16

创建类时,可以使用 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?

4

1 回答 1

16

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

class MyConverter : TypeConverter
{
}

sealed class MyClass
{   
}

您可以使用:

TypeDescriptor.AddAttributes(typeof(MyClass), new TypeConverterAttribute(typeof(MyConverter)));
于 2012-12-18T00:33:56.160 回答