2010-11-22 58 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