【问题标题】:TypeConverter Attribute for Third Party Classes第三方类的 TypeConverter 属性
【发布时间】:2012-12-05 03:48:47
【问题描述】:

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

【问题讨论】:

标签: c# .net type-conversion typeconverter sealed


【解决方案1】:

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

class MyConverter : TypeConverter
{
}

sealed class MyClass
{   
}

你可以使用:

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

【讨论】:

  • 是的,这行得通。不幸的是,这必须在运行时完成,但总比没有好。感谢您的帮助!
猜你喜欢
  • 2021-12-12
  • 1970-01-01
  • 2020-10-28
  • 2011-04-07
  • 1970-01-01
  • 1970-01-01
  • 2011-06-15
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多