私のソリューションには、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;
構成ファイルを処理する適切な方法は何ですか?