2

我希望能够扩展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;

我已经查看了可用的自定义选项(例如此处),但它并没有真正给我想要实现的目标。这甚至可能吗?

(我意识到我可以通过滚动我自己的配置管理器来做到这一点,但如果可能的话,我真的更喜欢扩展 .NET 框架当前提供的功能)

4

3 回答 3

2

您没有创建自定义配置管理器。您可以通过创建自定义配置部分,在配置文件中注册它来完成此操作,然后您就完成了。

希望这可以帮助...

ps好教程@codeproject.com: http: //www.codeproject.com/KB/dotnet/mysteriesofconfiguration.aspx

于 2009-07-03T09:38:08.970 回答
2

在这种情况下,您应该使用该ConfigurationManager.ConnectionStrings属性。

如果您确实想扩展 App.Config 以包含您自己的配置部分,您可以创建一个派生自类的ConfigurationSection类。这里有一个很好的例子。

您在问题中表达的内容...能够执行类似的操作ConfigurationManager.Databases,其中 Databases 是 ConfigurationManager 类上的自定义静态属性,这是不可能的。

于 2009-07-03T09:57:07.193 回答
1

您可以使用ConfigSectionwhis 这个类,您可以将自定义的配置属性添加到配置文件中。

有一个非常有用的 Visual Studio 插件(配置节设计器),它允许您以图形方式设计 .NET 配置节并自动为它们生成所有必需的代码和架构定义 (XSD)。

有关安装和使用说明,请参阅此处

于 2012-01-11T16:57:40.383 回答