在app.config中是否有类似“配置上下文”的内容

时间:2013-06-29 02:52:44

标签: c# .net configuration app-config configuration-files

在我们的C#项目中,我遇到了一种情况,我希望有类似于"配置上下文"在配置文件中。

我的意思是:

我想要像这样的功能(想象中的例子)

<?xml version="1.0" encoding="utf-8" ?>
<configuration>

    <ConfigurationContext name="Context1">
        <connectionStrings>
            <add name="AppConnStr" connectionString="..." providerName="..."/>
        </connectionStrings>
        <AppSettings>
            <add key="name" value="Config 1 Test!"/>
        </AppSettings>
    </ConfigurationContext>

    <ConfigurationContext name="Context2">
        <connectionStrings>
            <add name="AppConnStr" connectionString="..." providerName="..."/>
        </connectionStrings>
        <AppSettings>
            <add key="name" value="Config 2 Test!"/>
        </AppSettings>
    </ConfigurationContext>

</configuration>

然后我可以像

一样使用它
var context1 = ConfigurationManager.GetContext("Context1");
var conn = new SqlConnection(context1.ConnectionStrings["AppConnStr"].ConnectionString);

意味着每个&#34; context&#34;就好像它是一个自己的app.config(有节,节组等)......

现在我做的是加载两个不同的应用程序域,每个域都有自己的配置文件。原因是因为项目的几乎所有设置都通过公共静态属性公开给代码。为了避免从静态到实例属性的大量重构,我不得不选择多个应用程序域解决方案。

现在我有时间去做,我想重构代码以使用Context对象来实现将配置设置作为实例属性公开的接口,并摆脱加载,卸载和阴影复制应用领域...

有没有办法在.NET框架中实现这样的功能?

0 个答案:

没有答案