代码之家  ›  专栏  ›  技术社区  ›  redcalx

在.NET中处理嵌套配置数据最方便的方法是什么?

  •  1
  • redcalx  · 技术社区  · 14 年前

    我经常以以下格式将应用程序配置数据存储在app.config文件中:

    <configuration>
        <appSettings>
            <add key="foo" value="foo value"/>
            <add key="bar" value="bar value"/>
         </appSettings>
    </configuration>
    

    然后可以在运行时通过以下方式轻松访问:

    string fooValue = ConfigurationManager.AppSettings["foo"];
    

    但是,这种方法似乎不允许处理嵌套/层次结构数据或具有相同键的多个项,例如,我希望能够列出指定命名空间前缀/uri对的许多配置项。

    我发现文档有些混乱,所以想知道在处理嵌套应用程序配置数据的最简单/最快速和最方便的方法上达成了什么共识。这是一个简单的每个应用程序/安装配置-而不是每个用户。

    3 回复  |  直到 14 年前
        1
  •  2
  •   azheglov    14 年前

    我建议定义 您自己的XML模式 对于这样的层次设置,并将其序列化为/从磁盘上的配置文件反序列化(与app.config/web.config分开)

        2
  •  2
  •   JonoW    14 年前

    查看分区组: http://www.codeproject.com/KB/aspnet/Managing_Webconfig.aspx

    允许您在web.config中写入自定义处理程序可以解析的自定义XML片段。这允许您设置更复杂的配置选项。

        3
  •  0
  •   Brian M. Hunt    14 年前

    对于过去的web应用程序,我在machine.config中使用了一个键来标识环境(即qa、uat、prod等),然后在web.config中使用了如下键:

    机器配置

            <add key="server_environment" value="qa"/>
    

    Web.CONFIG

    <configuration>
        <appSettings>
            <add key="qa_foo" value="foo value"/>
            <add key="uat_foo" value="foo value"/>
            <add key="prod_foo" value="foo value"/>
         </appSettings>
    </configuration>
    

    我得到服务器环境值,并将其与我要查找的密钥进行配对-更改环境与更改machine.config中的值一样简单。正如前面提到的,节组也是您可能希望调查的内容。