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

时间:2009-11-26 14:36:54

标签: .net configuration

我经常将应用程序配置数据存储在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 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:2)

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

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

答案 2 :(得分:0)

对于过去的web应用程序,我在machine.config中使用了一个键来识别环境(即QA,UAT,Prod等),然后在web.config中使用了这样的键:

machine.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>

我获取server_environment值并将其与我正在寻找的密钥配对 - 更改环境就像更改machine.config中的值一样简单。正如已经提到的,部分组也是你可能想要调查的东西。

相关问题