2012-02-04 3 views
0

WPF/PRISM 사용 내 메시지를 ILoggerFacade을 통해 내 GUI (상태 표시 줄 및 로깅 창)에 기록하고 싶습니다. 문제는 CreateLogger() 함수가 부트 스트랩 프로세스 초기에 호출되어서 IEventAggregator을 해결할 수 없다는 것입니다.PRISM GUI로 로깅

사용 가능한 GUI가 모두 ILoggerFacade 인 GUI에 로깅하는 올바른 방법은 무엇입니까?

덕분에, 마티유

답변

0

는 쉘은 매우 늦게 부트 스트랩 과정에서 생성된다, 그래서 심지어 부트 스트 래퍼에서 나오는 초기 로그 메시지를 표시하는 창이되지 않습니다. 당신이 GUI에 이후 메시지를 기록하려면

, 당신은 ConfigureContainer 방법을 무시하고 MyLoggerAdapter 당신이 당신의 CreateLogger 재정에서 만든 로거의 유형이

protected override void ConfigureContainer() 
{ 
    base.ConfigureContainer(); 

    ((MyLoggerAdapter)this.Logger).EventAggregator = 
     Container.Resolve<IEventAggregator>(); 
} 

처럼 뭔가를 할 수 . 그러면 MyLoggerAdapter의 구현에서 다음을 가질 수 있습니다.

public void Log(string message, Category category, Priority priority) 
{ 
    if (EventAggregator != null) 
    { 
     // Perform logging that requires EventAggregator. 
    } 
}