Web.config中的自定义配置元素集合
介绍
我正在开发一个基于C#ASP.NET的Web应用程序。
我一直在研究用Web.config
文件中的子元素创建一个“自定义配置”部分,并且当涉及到消费数据中的键/值时,我遇到了一些障碍。
我似乎围绕着圈子,而且我不知道如何解决我遇到的问题。
情况
我在<connectionStrings>
部分的Web.Config
文件中定义了几个不同的连接字符串。 它们用于开发,测试和实时数据库。
<connectionStrings>
<add name="connectionOne" connectionString="..." providerName="..." />
<add name="connectionTwo" connectionString="..." providerName="..." />
<add name="connectionThree" connectionString="..." providerName="..." />
</connectionStrings>
WebApp目前使用硬编码来使用这些连接字符串之一 - 如果我需要更改使用哪一个,我需要重新编译。
期望的功能
我想在Web.config
定义一个部分,比如说DbSettings
。
因此,我希望能够为DbSetting
定义一些子元素,我可以在其中定义dbConnectionName
, foo
, bar
等属性。
例如:
<dbSettings>
<dbSetting key="DbSetting1"
dbConnectionName="connectionOne"
foo="fooOne"
bar="barOne" />
... and so on
</dbSettings>
然后,也许在<appSettings>
部分中,定义我想使用哪些DbSetting
的元素来获取设置:
<appSettings>
<add name="dbSettingsKey" value="DbSetting1" />
</appSettings>
所需的Web.config部分
这里是我想象我的Web.config
文件看起来像一个更完整的例子:
连接字符串
<connectionStrings>
<add name="connectionOne" connectionString="..." providerName="..." />
<add name="connectionTwo" connectionString="..." providerName="..." />
<add name="connectionThree" connectionString="..." providerName="..." />
</connectionStrings>
应用设置
<add key="dbSettingsKey" value="DbSetting1" /> // or 2, or 3 etc.
DbSettings (自定义部分)
<dbSettings>
<dbSetting key="DbSetting1"
dbConnectionName="connectionOne"
foo="fooOne"
bar="barOne" />
<dbSetting key="DbSetting2"
dbConnectionName="connectionTwo"
foo="fooTwo"
bar="barTwo" />
<dbSetting key="DbSetting3"
dbConnectionName="connectionThree"
foo="fooThree"
bar="barThree" />
</dbSettings>
我的问题...
我将如何在C#代码中获得这些所需的功能?
我读过关于“创建自己的自定义部分”的负载,并且同样“创建自定义配置集合”。 但是,我似乎无法将它们粘合在一起来申请我的处境。
我希望能够有一个类(就像我现在使用的硬编码字符串一样),我可以引用必要的属性(就像我现在所做的那样) - 然后代码可以在运行时从我上面描述的部分动态加载正确的设置。
与往常一样,提前感谢您的建议和帮助。
我同意评论。 通常这样做的方法是为每个环境部署一个不同的web.config。 部署组(或您)部署时,除非您有更改推送,否则您将部署除web.config之外的所有内容。
在回答你的其他问题时,添加一个自定义部分不是微不足道的。 这是相当多的工作。 需要大量配置元素类和一些配置元素集合类的自定义节处理程序......然后,如果您希望它能够“正常”工作,则还需要创建一个模式并将其注册到IDE中,等等
对于你的具体情况,我只是做“正常”的方式:)。
链接地址: http://www.djcxy.com/p/42593.html上一篇: Custom config elements collection in Web.config
下一篇: iPhone webapp design