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

How to prevent duplicate appSettings in 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?

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

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