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

감사합니다. 내 개인 윈저 어시스턴트가되기 시작했습니다. –

관련 문제