在我们的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框架中实现这样的功能?