Mac*_*iek 5 c# xml asp.net asp.net-mvc
我已经创建了一个自定义System.Configuration.ConfigurationSection
,我将其保存在一个单独的配置文件中,并将其包含在我的web.config中'configSource="MyCustomConfigFile.config"'
我还为自定义配置文件创建了一个.xsd架构,以添加一些好处,如架构验证/智能感知 - 这很好用.
尝试启动应用程序(在IIS8,.NET 4.5.1中托管)时,我收到以下错误:
配置错误说明:处理为此请求提供服务所需的配置文件时发生错误.请查看下面的具体错误详细信息并相应地修改配置文件.
分析器错误消息:无法识别的属性"xmlns".请注意,属性名称区分大小写.
来源错误:
第1行:<?xml version ="1.0"encoding ="utf-8"?>
第2行:<identityServer xmlns ="http://myCustomNamespace.xsd">
说实话,我很惊讶 - 有人能告诉我如何解决这个问题而不删除xmlns以便我可以保留架构验证/智能感知吗?
Mac*_*iek 12
使用此处的信息很明显,解析器无法反序列化配置部分,因为配置部分不知道'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;
}
}
}
Run Code Online (Sandbox Code Playgroud)
这完全解决了这个问题.
归档时间: |
|
查看次数: |
1775 次 |
最近记录: |