2011-04-12 13 views
2

私は、Enterprise Library 5.0のLogging and Exception Blocksでmefを使いたいと思っています。.net Mef with Enterprise Library 5.0

私がやっていることは、MEFがディレクトリ内で探しているプラ​​グインがあるということです。その後、私のためにそれをインポートします。しかし、私はプラグインでもロギングと例外処理を使用しています。私はLogWriterとExceptionWriterのインスタンスをmef経由で挿入できるようにしたいと考えています。この例では、プラグインを取得してインスタンス化するためにmefを使用しているので、うまくいきません。

おかげ

答えて

2

あなたは、このようなクラスでLogWriterをエクスポートすることができます。MEFは通常、輸入者がCreationPolicy.NonSharedを要求する場合を除き、一度だけ、このプロパティのゲッターを呼び出します

public class LogWriterExporter 
{ 

    [Export(typeof(LogWriter))] 
    public LogWriter LogWriter 
    { 
     get 
     { 
      return new LogWriter(...); 
     } 
    } 
} 

注意。シングルトン動作を強制する場合は、明示的に[PartCreationPolicy(CreationPolicy.Shared)]属性をクラスに追加できます。

関連する問題