2012-05-21 3 views
0

프로젝트에서 ASP.NET MVC, Castle Windsor 및 Log4Net을 사용하고 있습니다.성 윈저 : 소비자를위한 구성 요소?

내 로깅 구성 요소에 이런 식으로 뭔가있어 :

public class Log4NetLoggerService : ILoggerService 
{ 
    private readonly ILog _logger; 

    public Log4NetLoggerService() 
    { 
     _logger = LogManager.GetLogger(typeof(Log4NetLoggerService)); 
    } 
} 

그러나 물론이 나에게 내 로그 파일에 "Log4NetLoggerService"를 제공

... 내가 원하는 것을 이제

입니다 내 로깅 구성 요소가 해결/구축되는 소비자 등급을 확인하려면.

나는 로깅 서비스가 암시 적으로 (IoC) 해결되거나 IKernel.Resolve에 대한 직접 호출을 사용하기 때문에 StackFrame 클래스를 사용해 보았지만 운이 좋았지는 않았다.

는 윈저 프레임 워크에서이 작업을 수행 할 수있는 방법이 있어야합니다, 난 그냥 ...

감사 아무것도 찾을 수 없습니다!

답변

1

왜 생성자에서 유형을 가져 오지 않을까요?

public Log4NetLoggerService(Type loggingComponentType) 
{ 
    _logger = LogManager.GetLogger(loggingComponentType); 
} 

로거를 구성 요소에서 정적 멤버로 사용하는 경우 유형을 한 번만 보내면됩니다.

+0

캐터필라 윈저 (IoC)가 수동으로 제작하지 않았기 때문에 구성되었습니다. 죄송합니다. – TravelingFox