我希望能够扩展ConfigurationManager
以便我有一个app.config,如下所示:
<configuration>
<databases>
<add name="db1" server="someServer" dbName="superDB" userName="" password=""/>
<add name="db2" server="anotherServer" dbName="ordinaryDB" userName="dba" password="dba"/>
</databases>
</configuration>
然后能够通过ConfigurationManager
这样访问这些字段
string dbName = ConfigurationManager.Databases["db1"].DBName;
我已经看过可用的自定义选项(例如here),但它并没有真正给我我想要实现的目标。这甚至可能吗?
(我意识到我可以通过滚动自己的配置管理器来实现这一点,但我真的更愿意扩展.NET框架目前提供的内容,如果可能的话)
答案 0 :(得分:2)
您没有创建自定义配置管理器。您可以通过创建自定义配置部分,将其注册到配置文件中来完成此操作。
希望这会有所帮助......
好的教程@ codeproject.com:http://www.codeproject.com/KB/dotnet/mysteriesofconfiguration.aspx
答案 1 :(得分:2)
在这种情况下看起来应该使用ConfigurationManager.ConnectionStrings
属性。
如果你真的想扩展App.Config以包含你自己的配置部分,你可以创建一个派生自ConfigurationSection
类的类。有一个很好的例子here。
您在问题中表达的内容......能够执行ConfigurationManager.Databases
之类的操作,其中Databases是ConfigurationManager类上的自定义静态属性,是不可能的。
答案 2 :(得分:1)
您可以使用ConfigSection
,在此课程中您可以将自定义配置属性添加到配置文件中。
有一个非常有用的Visual Studio加载项(配置部分设计器),它允许您以图形方式设计.NET配置部分并自动生成所有必需的代码和模式定义(XSD)它们。
有关安装和使用说明,请参阅here