使用WPF / PRISM我想通过ILoggerFacade
将我的消息记录到我的GUI(状态栏和记录窗口)。问题是CreateLogger()
函数在引导过程中很早就被调用了,我无法解析IEventAggregator
。
使用所有可用的ILoggerFacade
谢谢, 马蒂厄
答案 0 :(得分:0)
shell在引导过程中很晚才创建,因此甚至没有窗口显示来自引导程序的初始日志消息。
如果要将任何以后的消息记录到GUI,可以覆盖ConfigureContainer
方法并执行类似的操作
protected override void ConfigureContainer()
{
base.ConfigureContainer();
((MyLoggerAdapter)this.Logger).EventAggregator =
Container.Resolve<IEventAggregator>();
}
其中MyLoggerAdapter
是您在CreateLogger
覆盖中创建的记录器的类型。
然后在MyLoggerAdapter
的实施中,你可以拥有
public void Log(string message, Category category, Priority priority)
{
if (EventAggregator != null)
{
// Perform logging that requires EventAggregator.
}
}