0

我有一个项目(A)通过引用服务(B)。服务参考。

该服务 (B) 具有对 DLL 的引用(我们称之为 Business.dll)

该 DLL 有它自己的可容纳 app.config,它有一些配置,我认为无论是在内部(作为控制台应用程序)还是从服务 (B) 外部调用,都可以轻松读取这些配置。

目前,这不起作用。app.config(或更具体地说,Business.dll.config 文件)根本没有被读取,并且:

(BusinessConfigurationSection)ConfigurationManager.GetSection("GroupName/SectionName");

从项目 (A) 调用时始终为空。我可以不将 Business.dll.config 保存在 Service (B) 的 bin 目录中,还是我在做一些根本不可能的事情?我应该这样做有更好的方法吗?

谢谢。

4

2 回答 2

1

您可以像这样加载特定的配置文件:

Configuration config;
ExeConfigurationFileMap ecfm = new ExeConfigurationFileMap();
ecfm.ExeConfigFilename = <your_config_file_path>;

config = ConfigurationManager.OpenMappedExeConfiguration(ecfm, ConfigurationUserLevel.None);
var mySection = (BusinessConfigurationSection)config.GetSection("GroupName/SectionName");
于 2013-10-09T14:48:34.617 回答
1

当您从 Project A 调用时,ConfigurationManager 将始终从 ProjectA 的 App.config 中读取,而不是从 DLL 中读取

您可以使用以下代码打开 DLL 配置,

  // Get the configuration file. The file name has 
      // this format appname.exe.config.
      System.Configuration.Configuration config =
        ConfigurationManager.OpenExeConfiguration(dllPath); //dll config
于 2013-10-09T14:41:23.603 回答