0

私のチームは、ホスト アプリケーションがプラグインの動作を調整するプラグイン プロジェクトを開発しています (各プラグインには特定の機能があり、別のスレッドで実行されます)。私はホスト アプリケーションを作成し、IPlugin インターフェイスを定義しています。他の開発者は、私の IPlugin インターフェイスを参照して、彼のプラグインを開発します。
そして、私のチームに問題を提起してください: 一部の開発者は Nlog を使用してプラグインの作業をログに記録しますが、他の開発者は Log4Net を使用します。
私の質問は、各プラグインが使用したいロギング コンポーネントを使用できるようにする方法です。
ありがとうございました!

4

1 に答える 1

0

だからあなたがインターフェースを作るとしましょう:

interface ILoggerPlugin
{
    void Log(LogInfo info);
}

そしてあなたのすべての情報のためのクラス

class LogInfo
{
    public string Application;
    public Exception LoggedException;
}

ここで、インターフェイスを引き渡し、すべての開発者にこれに従うように依頼すると、他のすべてのビットが抽象化されます。プラグインのエンドユーザーは、実装として何が使用されているかを知る必要はありません。その NLog または Log4Net を風化します。

私たちはそのようなものを実装しました。さらに、データベース、ファイル、および/または重要なものの電子メールを指すターゲット変数もあります。

于 2015-04-17T07:52:57.913 に答える