创建类时,可以对其应用 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.
只要这个类是我们创建的,这个方法就有效。但是如何为我们无法修改源代码的类提供自定义 TypeConverter 呢?例如,如何为 System.Version 类(没有)提供自定义 TypeConverter?
您可以在运行时执行此操作。通过这些课程:
class MyConverter : TypeConverter
{
}
sealed class MyClass
{
}
您可以使用:
TypeDescriptor.AddAttributes(typeof(MyClass), new TypeConverterAttribute(typeof(MyConverter)));
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)