我工作的程序,它是能夠加載各種(自制)插件。正在使用事件記錄一個好主意?
這些插件需要有一種方法將通知發送到宿主程序。
目前,我有一個接口作爲插件的基礎。 的接口定義,每當我需要登錄的東西
接口被觸發的事件是這樣的:
public delegate void LogEventHandler(object sender, LogEventArgs e);
public interface IWatcherPluginBase
{
event LogEventHandler WriteLog;
string Name { get; }
string Description { get; }
string Contact { get; }
Version Version { get; }
PluginState Status { get; }
string StatusDescription { get; }
void Start();
void Stop();
}
在我使用下面的代碼觸發事件
if (WriteLog != null)
WriteLog(this, new LogEventArgs("Started", MessageLevel.Info));
插件
我的主程序添加了事件處理程序
plugin.WriteLog += new LogEventHandler(plugin_WriteLog);
你知道其他(可能更好)的方法來實現日誌記錄嗎?
得看看 – peter 2010-08-09 14:48:10
+1:TraceSource值得一提。 – 2010-08-09 17:36:04
TraceSource看起來很有意思:) – peter 2010-08-09 19:49:28