2017-08-19 12 views
2

依存からいくつかのデータを注入するSerilog Enricherを作成したいと思います。オートファックはどのようにしてより豊かな人に自分の依存を注入できますか?AutofacでSeriLogエンリッチャーに依存関係を注入

これは私のコンテナの設定です:enricherが動作していないよう

public class MyEnricherWhichCanAddMoreDataFromADependency : ILogEventEnricher 
{ 
    public MyEnricherWhichCanAddMoreDataFromADependency(IDependency d) 
    { ... do stuff with the dependency ... } 
} 

コンストラクタ・インジェクションのようなものに見えるだろうが

builder.Register((c, p) => 
{ 
    return new LoggerConfiguration() 
    .Enrich.FromLogContext() 
    .Enrich.With<MyEnricherWhichCanAddMoreDataFromADependency>() 
    // ... 
    .CreateLogger(); 
}).As<ILogger>(); 

。または私は何か間違っているのですか?

答えて

3

With<T>すべてを行うと、文字通りis calling new T()となります。

DIを通して豊かにしたい場合は、自分で行う必要があります。

builder.Register((c, p) => 
{ 
    var e = c.Resolve<MyEnricherWhichCanAddMoreDataFromADependency>(); 
    return new LoggerConfiguration() 
    .Enrich.FromLogContext() 
    .Enrich.With(e) 
    // ... 
    .CreateLogger(); 
}).As<ILogger>(); 
関連する問題