2010-11-22 94 views
1

我在桌面應用程序的工作在那裏,當我thaught處理在catch塊的錯誤在事件日誌,然後我得到一個錯誤的錯誤在catch塊

錯誤3類型或命名空間名稱事件日誌」無法找到在此

catch (Exception ex) 
{ 
    EventLog log = new EventLog("Application"); 
    log.Source = "MFDBAnalyser"; 
    log.WriteEntry(ex.Message); 
} 

(是否缺少using指令或程序集引用?)

等建議。

+3

所以,「你缺少一個‘使用’指令或參考」? – khachik 2010-11-22 10:29:54

回答

4

添加到頂部:

using System.Diagnostics; 

或直接使用:

catch (Exception ex) 
{ 
    System.Diagnostics.EventLog log = new System.Diagnostics.EventLog("Application"); 
    log.Source = "MFDBAnalyser"; 
    log.WriteEntry(ex.Message); 
} 

,或者如果你正在使用.NET 3.5或4.0/VS 2008或2010(最優選的方式):

catch (Exception ex) 
{ 
    using (var log = new System.Diagnostics.EventLog("Application") { Source = "MFDBAnalyser" }) 
    { 
     log.WriteEntry(ex.Message); 
    } 
} 
  • 關鍵字var降低了代碼lengt H。
  • 您應該致電Dispose()(或使用using塊)實施IDisposable的課程!
2

假設System.dll已經被你的項目(通常情況下)引用,您可以通過的解決了這個問題:

  • 導入的命名空間,通過在你的文件的頂部添加using System.Diagnostics;指令。
  • 完全確定類型 - System.Diagnostics.EventLog log = ...
  • 提供別名。例如,在文件頂部添加using EventLog = System.Diagnostics.EventLog;
1

您是否在System.Diagnostics中添加了使用指令?

如果不是,您將不得不將其編寫爲System.Diagnostics.EventLog

1

您應該添加EventLog類庫引用您參考System.Diagnostics