说我有以下app.config设置为主应用程序:
<appSettings> <add key="House" value="Stark"/> <add key="Motto" value="Winter is coming."/></appSettings>
另一个用于使用Assembly.LoadFrom加载的库:
<appSettings> <add key="House" value="Lannister"/> <add key="Motto" value="Hear me roar!"/></appSettings>
两个库都有一个类实现相同的接口,具有以下方法:
public string name{ get { return ConfigurationManager.AppSettings["House"]; }}
并且肯定有足够的调用来自主类和加载的汇编类输出Stark.
有没有办法使主应用程序使用自己的app.config和每个加载的程序集使用他们的?配置文件的名称在输出中是不同的,所以应该可以我想.
解决方法 好的,这是我最终的简单解决方案:在实用程序库中创建跟随函数:
public static Configuration LoadConfig(){ Assembly currentAssembly = Assembly.GetCallingAssembly(); return ConfigurationManager.OpenExeConfiguration(currentAssembly.Location);}
在动态加载的库中使用它,如下所示:
private static Readonly Configuration Config = ConfigHelpers.LoadConfig();
无论如何加载它,它使用正确的配置文件.
编辑:
这可能是将文件加载到ASP.NET应用程序的更好的解决方案:
public static Configuration LoadConfig(){ Assembly currentAssembly = Assembly.GetCallingAssembly(); string configPath = new Uri(currentAssembly.CodeBase).LocalPath; return ConfigurationManager.OpenExeConfiguration(configPath);}
要在构建后复制文件,您可能需要添加以下行到asp应用程序的后期构建事件(从库中拉取配置):
copy "$(SolutionDir)<YourlibProjectname>$(OutDir)$(Configuration)\<YourlibProjectname>.dll.config" "$(ProjectDir)$(OutDir)"总结
以上是内存溢出为你收集整理的c# – 动态加载程序集的应用程序配置全部内容,希望文章能够帮你解决c# – 动态加载程序集的应用程序配置所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)