我在Infrastructure.Module項目中創建了一個新的View(LogView)。這個視圖將被用作VS中的輸出窗口的LogViewer。我想在不同模塊的LogView中寫入不同的狀態信息。SCSF:將消息追加到LogView中。使用事件發佈
我還創建了一個類日誌寫其發佈事件寫消息到日誌查看
我面臨的問題來訪問我的整個應用這個日誌寫類..請告訴我如何可以使用此...
public class LogWriter
{
[EventPublication(EventTopicNames.WriteToLog, PublicationScope.Global)]
public event EventHandler<EventArgs<string>> WriteToLog;
private void OnWriteToLog(EventArgs<string> eventArgs)
{
if (WriteToLog != null)
{
WriteToLog(null, eventArgs);
}
}
public void WriteMsg(string msg)
{
OnWriteToLog(new EventArgs<string>(msg));
}
}
和日誌查看事件訂閱是
[EventSubscription(EventTopicNames.WriteToLog, ThreadOption.UserInterface)]
public void OnWriteToLog(object sender, EventArgs<string> eventArgs)
{
this.txtLogs.AppendText(eventArgs.Data + Environment.NewLine);
}
請建議我一個解決方案
日誌寫類是在Infrastructure.Interface項目 LogViewer的是Infrastructure.Module項目
在Infrastructure.Module的ModuleController.cs我在WorkItem.Services集合添加日誌寫
WorkItem.Services.AddNew<LogWriter>();
和另外一個項目我得到它使用
var logWriter = WorkItem.Services.Get(); if(logWriter!= null) logWriter.WriteMsg(「message」);
但它返回null。
模塊加載順序也是正確的。
對於事件訂閱,請確保您的View是BuiltUp或添加到WorkItem(SmartParts或Items)的ObjectCollections之一。 –
line var logWriter = WorkItem.Service.Get();總是返回null –
Mohsan
是與ModuleInit類相同的程序集中的LogWriter類? –