我经常将应用程序配置数据存储在app.config文件中,格式如下:
<configuration>
<appSettings>
<add key="foo" value="foo value"/>
<add key="bar" value="bar value"/>
</appSettings>
</configuration>
然后可以在运行时通过以下方式轻松访问:
string fooValue = ConfigurationManager.AppSettings["foo"];
然而,这种方法似乎不允许处理嵌套/层次结构数据或具有相同密钥的多个项目,例如我希望能够列出一些指定名称空间前缀/ uri对的配置项。
我发现文档有些令人困惑,所以想知道对于处理嵌套应用程序配置数据的最简单/最快捷,最方便的方法是什么。这是一个简单的每个应用程序/安装配置 - 不是每个用户。
答案 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中的值一样简单。正如已经提到的,部分组也是你可能想要调查的东西。