创建类时,可以对其应用 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.
只要类(class)是我们制作的,这就有效。但是如何为我们无法修改源代码的类提供自定义 TypeConverter 呢?例如,如何为 System.Version 类(没有)提供自定义 TypeConverter?
最佳答案
您可以在运行时完成。使用这些类:
class MyConverter : TypeConverter
{
}
sealed class MyClass
{
}
您可以使用:
TypeDescriptor.AddAttributes(typeof(MyClass), new TypeConverterAttribute(typeof(MyConverter)));
关于c# - 第三方类的 TypeConverter 属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13924494/