我正在用C#和.NET 3.5编写自定义配置类.其中一个属性应为System.Type类型.当我运行代码时,我得到标题中提到的错误.
[ConfigurationProperty("alertType", IsRequired = true)]
public Type AlertType
{
get { return (Type)this["alertType"]; }
set { this["alertType"] = value; }
}
Run Code Online (Sandbox Code Playgroud)
配置文件如下所示:
<add name="Name" pollingInterval="60" alertType="Namespace.ClassName, Company.Project" />
Run Code Online (Sandbox Code Playgroud)
.net框架能够将字符串转换为System.Type,因为配置文件的configSections具有type属性.问题是他们是如何做到的.
Sha*_*all 64
我知道这是旧的,但我认为这实际上是正确的答案:
[TypeConverter(typeof(TypeNameConverter))]
[ConfigurationProperty("alertType", IsRequired=true)]
public Type AlertType
{
get { return this[ "alertType" ] as Type; }
set { this[ "alertType" ] = value; }
}
Run Code Online (Sandbox Code Playgroud)
添加TypeNameConverter可以在不使用Type.GetType()的情况下进行从String到Type的转换.
| 归档时间: |
|
| 查看次数: |
4997 次 |
| 最近记录: |