作者:辛博的调调最棒 | 来源:互联网 | 2023-05-25 12:06
我已经创建了一个自定义System.Configuration.ConfigurationSection
,我将其保存在一个单独的配置文件中,并将其包含在我的web.config中'cOnfigSource="MyCustomConfigFile.config"'
我还为自定义配置文件创建了一个.xsd架构,以添加一些好处,如架构验证/智能感知 - 这很好用.
尝试启动应用程序(在IIS8,.NET 4.5.1中托管)时,我收到以下错误:
配置错误说明:处理为此请求提供服务所需的配置文件时发生错误.请查看下面的具体错误详细信息并相应地修改配置文件.
分析器错误消息:无法识别的属性"xmlns".请注意,属性名称区分大小写.
来源错误:
第1行:<?xml version ="1.0"encoding ="utf-8"?>
第2行:
说实话,我很惊讶 - 有人能告诉我如何解决这个问题而不删除xmlns以便我可以保留架构验证/智能感知吗?
1> Maciek..:
使用此处的信息很明显,解析器无法反序列化配置部分,因为配置部分不知道'xmlns'属性 - 这实际上使PERFECT有意义.
为了解决这个问题,您可以将以下内容添加到C#中的自定义配置部分:
public class MyCustomConfigurationSection
{
private const string XmlNamespaceCOnfigurationPropertyName= "xmlns";
[ConfigurationProperty(XmlNamespaceConfigurationPropertyName, IsRequired = false)]
public string XmlNamespace
{
get
{
return (string)this[XmlNamespaceConfigurationPropertyName];
}
set
{
this[XmlNamespaceConfigurationPropertyName] = value;
}
}
}
这完全解决了这个问题.