通过服务引用调用时读取配置节的 DLL 出现问题

本文关键字:DLL 问题 配置 读取 服务 引用 调用 | 更新日期: 2023-09-27 18:34:40

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

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

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

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

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

从项目 (A( 调用时始终为 null。 我是否可以不将 Business.dll.config 保存在服务 (B( 的 bin 目录中,或者我正在做一些根本不可能的事情? 有没有更好的方法让我这样做?

谢谢。

通过服务引用调用时读取配置节的 DLL 出现问题

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

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");

当你从项目 A 调用时,配置管理器将始终从项目A的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