如何防止web.config中重复的appSettings

时间:2016-02-12 13:31:39

标签: c# asp.net asp.net-mvc asp.net-mvc-4 web-config

ASP.NET MVC4 C#应用程序web.config包含类似

的设置
<configuration>
  <appSettings>
    <add key="DefaultDataBase"
         value="db1"/>
  ..

方法

public static string DefaultDataBase
{
    get
    {
        return WebConfigurationManager.AppSettings["DefaultDataBase"] ?? "mydefault";
    }
}

用于在代码中获取它。 如果web.config意外包含重复键,如

<configuration>
  <appSettings>
    <add key="DefaultDataBase"
         value="db1"/>
    <add key="DefaultDataBase"
         value="db2"/>

  ..

此代码默默地重新生成错误的值db2

如何检测重复键并在重复项上抛出ApplicationException?

1 个答案:

答案 0 :(得分:0)

使用AppSettings属性是不可能的。它只是一个普通的字典,当你在已经有一些数据的密钥中设置数据时,这个数据就会被替换掉。

您可以通过使用例如XmlReader(或其他技术)阅读web.config xml来检查重复项。但这不是常见的机制,因为配置文件应该由“负责任的”人员改变。