自定义app.config

时间:2009-07-03 09:26:33

标签: .net configuration customization

我希望能够扩展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框架目前提供的内容,如果可能的话)

3 个答案:

答案 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