私のソリューションには一種のプラグイン アーキテクチャがあります。プラグインを配置する既知のフォルダーがあります。プラグインは、ホスト プロジェクトで共有されるインターフェイスを実装します。
最初に、プラグインをロードしAssembly.LoadFrom(fi.FullName).GetTypes()
、必要なタイプをインスタンス化します(IPlugin)Activator.CreateInstance(type);
。
したがって、ホスト (メイン アプリケーション) は、プラグイン アセンブリによって実装された適切なコードを実行できます。これはこれまでのところうまくいきます。
しかし最近、NLogを介してアプリケーションロギングを実装しようとし、ホストプロジェクトでNLogを構成しましたが、うまく機能しました。
問題は、プラグイン アセンブリで (既に構成されている) ロガーを使用したいということです。NLog を参照して使用するだけでLogManager.GetCurrentClassLogger();
は、構成セットがないようです。プラグイン アセンブリのホスト プロジェクトで構成したファイルにログを記録しません。
NLogger インスタンス (ホスト プロジェクトで作成) をプラグイン タイプのプロパティに挿入しようと考えました。
これは可能ですか、それともそのようなことを達成するための好ましい方法はありますか? ありがとう