C# 第三方类的TypeConverter属性

C# 第三方类的TypeConverter属性,c#,.net,type-conversion,typeconverter,sealed,C#,.net,Type Conversion,Typeconverter,Sealed,创建类时,可以使用TypeDescriptor将TypeConverter属性应用于它的s.t。GetConverter(typeof(t))返回自定义类型转换器。例如: [TypeConverter(typeof(FooConverter))] public class Foo {...} public class FooConverter: TypeConverter {...} var tc = TypeDescriptor.GetConverter(typeof(T)); //ret

创建类时,可以使用TypeDescriptor将TypeConverter属性应用于它的s.t。GetConverter(typeof(t))返回自定义类型转换器。例如:

[TypeConverter(typeof(FooConverter))]
public class Foo
{...}

public class FooConverter: TypeConverter
{...}

var tc = TypeDescriptor.GetConverter(typeof(T)); //returns a FooConverter instance.

只要这门课是我们制作的,这门课就行。但是如何为一个我们无法修改源代码的类提供自定义类型转换器呢?例如,如何为System.Version类(没有)提供自定义类型转换器?

您可以在运行时这样做。在这些课程中:

class MyConverter : TypeConverter
{
}

sealed class MyClass
{   
}
您可以使用:

TypeDescriptor.AddAttributes(typeof(MyClass), new TypeConverterAttribute(typeof(MyConverter)));

我相信这里的答案是:谢谢你的链接。在这里发布之前,我已经阅读了这篇文章,我不认为它解决了我的担忧。但这仍然是一篇好文章。是的,这很有效。不幸的是,这必须在运行时完成,但总比什么都不做要好。谢谢你的帮助!