c# - 第三方类的 TypeConverter 属性

标签 c# .net type-conversion typeconverter sealed

创建类时,可以对其应用 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/

相关文章:

.net - 如何在不使用日期时间控件的情况下仅计算小时和分钟差异?

.net - 温莎城堡的延迟加载服务

r - 如何在R中将数据类型 "Factor"转换为数据类型 "numeric"?

casting - 在 Go 中将 int 转换为 rune

c# - 在 C# .NET 中清理 ODBC DSN

c# - 为什么这个 DirectoryInfo 比较不起作用?

c# - 将日期时间转换为字符串 Entity Framework

行(编号)处的 MySql 错误 - 是哪一行?

c# - 使用 .NET + Linq 创建项目列表时是否可以使用匿名方法?

c# - 在精确偏移处匹配正则表达式