0

在我的解决方案中,有一个使用 NLog 的主项目,还有另一个小型(独立)项目,其目的是允许更新<nlog>解决方案配置文件中该部分的属性。(解决方案名称.exe.config)

我创建了从 ConfigurationElement、ConfigurationElementCollection 和 ConfigurationSection 继承的类,以便能够读取和写入配置文件。

我必须在配置文件中定义 NLog 部分,否则 NLog 将无法工作。我的配置文件如下所示:

<configSections>
  <section name="nlog" type="NLog.Config.ConfigSectionHandler, NLog" /> <- need to remove this to make it work
  <section name="nlog" type="ReadWriteConfig.NLogSection, ReadWriteConfig" />
</configSections>

我不能允许 ReadWriteConfig 引用 NLog,它是一个独立的应用程序。

如果我以这种方式运行 ReadWriteConfig,它会引发找不到 NLog 程序集的异常。如果我删除 NLog<section>它工作正常。

ExeConfigurationFileMap configFileMap = new ExeConfigurationFileMap();
configFileMap.ExeConfigFilename = @"somepath\SolutionName.exe.config";

// Get current configuration file.
Configuration config = ConfigurationManager.OpenMappedExeConfiguration(configFileMap, ConfigurationUserLevel.None);

NLogSection myUrlsSection = config.GetSection("nlog") as NLogSection;

处理配置文件的正确方法是什么?

4

0 回答 0