创建一个类时,可以将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,我们不能修改源代码?例如,如何为System.Version类(没有一个)提供自定义的TypeConverter?
解决方法
你可以在运行时做到这一点.有了这些课程:
class MyConverter : TypeConverter { } sealed class MyClass { }
您可以使用:
TypeDescriptor.AddAttributes(typeof(MyClass),new TypeConverterAttribute(typeof(MyConverter)));