我已经(几乎)跟着来自MSDN的示例,在我的App.config中创建自定义标签(在此处查找文档: https://msdn.microsoft.com/en-us/library/2tw134k3.aspx)但是我收到了这个错误:
未处理的类型异常 ' System.Configuration.ConfigurationErrorsException'发生在 System.configuration.dll
其他信息:创建配置时出错 MyServiceGroup / ServiceUpdater的部分处理程序:无法加载类型 ' MyNamespace.ServiceUpdaterSection'从装配 ' System.configuration,Version = 4.0.0.0,Culture = neutral, 公钥= b03f5f7f33d50a4a'
并且在此行上触发错误(当我尝试使用App.config中的自定义信息时,从我的控制台应用程序中的Main内部):
MyNamespace.ServiceUpdaterSection serviceUpdaterSection =
(ServiceUpdaterSection)ConfigurationManager.GetSection("MyServiceGroup/ServiceUpdater");
从错误消息中我已经可以看到这是因为它试图在System.Configuration中找到MyNamespace.ServiceUpdaterSection,相反,它应该在MyNamespace中找到这个类(ServiceUpdaterSection),因为我已经给它了完全限定名称。
以下是我的App.config的外观:
<configSections>
<sectionGroup name="MyServiceGroup">
<section name="ServiceUpdater" type="MyNamespace.ServiceUpdaterSection"/>
</sectionGroup>
</configSections>
进一步在App.config里面我有:
<MyServiceGroup>
<ServiceUpdater>
<licenseKey id="blablabla"/>
</ServiceUpdater>
对于ServiceUpdaterSection类,它看起来如下:
namespace MyNamespace
{
public class LicenseKeyElement : ConfigurationElement
{
[ConfigurationProperty("id")]
public string Id
{
get
{
return (string)this["id"];
}
set
{
this["id"] = value;
}
}
}
public class ServiceUpdaterSection : ConfigurationSection
{
[ConfigurationProperty("licenseKey")]
public LicenseKeyElement LicenseKey
{
get
{
return (LicenseKeyElement)this["licenseKey"];
}
set
{
this["licenseKey"] = value;
}
}
}
}
您对此有何看法?
谢谢。
答案 0 :(得分:0)
错误在于:
<section name="ServiceUpdater" type="MyNamespace.ServiceUpdaterSection"/>
应该是:
<section name="ServiceUpdater" type="MyNamespace.ServiceUpdaterSection, MyNamespace"/>
如果其他人遇到同样的问题,请留下它。