c# - 无法找到支持类型为 'Type' 的属性与字符串之间的转换的转换器

标签 c# .net-3.5

我正在用 C# 和 .NET 3.5 编写自定义配置类。其中一个属性应该是 System.Type 类型。当我运行代码时,出现标题中提到的错误。

[ConfigurationProperty("alertType", IsRequired = true)]
public Type AlertType
{
    get { return (Type)this["alertType"]; }
    set { this["alertType"] = value; }
}

配置文件如下所示:

<add name="Name" pollingInterval="60" alertType="Namespace.ClassName, Company.Project" />

.net 框架能够将字符串转换为 System.Type,因为配置文件的 configSections 具有类型属性。问题是他们是怎么做到的。

最佳答案

我知道这是旧的,但我认为这实际上是正确的答案:

[TypeConverter(typeof(TypeNameConverter))]
[ConfigurationProperty("alertType", IsRequired=true)]
public Type AlertType
{
    get { return this[ "alertType" ] as Type; }
    set { this[ "alertType" ] = value; }
}

添加 TypeNameConverter 可以在不使用 Type.GetType() 的情况下实现从 String 到 Type 的转换。

关于c# - 无法找到支持类型为 'Type' 的属性与字符串之间的转换的转换器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2322074/

相关文章:

C# 将列表中所有项目的字段设置为相同的值

c# - 避免 LINQ 中的重复

c# - 从 byte[] 创建 zip 并返回到浏览器

c# - 带有 asp :MenuItem 的 DropDownList 菜单

c# - 从自定义列表中排序和获取数据 - C#

c# - 如何有条件地向 ASP.NET MVC 页面添加一些 CSS?

c# - 禁用列的排序功能?

.net - 无法在装有 VS2010/.net4 的电脑上运行基于 .net3.5 的 exe?

c# - Nhibernate C# 应用程序网络驱动器上的应用程序信任级别

c# - 从输出参数中提取类