8

ロギングサービス用のクラスにプロパティがあります。キャッスルウィンザーに自動的にプロパティを注入するにはどうすればいいですか?

private ILogger logger = NullLogger.Instance; 
public ILogger Logger 
{ 
    get { return logger; } 
    set { logger = value; } 
} 

そして私は、私のコンポーネントの登録でこれを持っている:

container.AddFacility<LoggingFacility>(x => new LoggingFacility(LoggerImplementation.Log4net)); 

しかし、ウィンザーは、ロガーを注入していないようだ - 私は何かが足りないのですか?

答えて

14

AddFacilityのlambdaパラメータは、実際には作成コールバック(ファクトリの作成時に呼び出されます)であり、ファクトリではありません。

は、代わりにこれを使用します:いつでもそれができる

container.AddFacility("logging", new LoggingFacility(LoggerImplementation.Log4net, "path_to_log4net.config")); 

はBTWウィンザーは、自動的にプロパティの依存関係を注入します。

+3

ありがとう、あなたは私の個人的なウィンザーのアシスタントになり始めています:-) –

関連する問題