System.Diagnostics.EventLog 无法使用实例引用访问
System.Diagnostics.EventLog Cannot be Accessed with an Instance Reference
我正在创建一个 Windows 服务,但在尝试写入 EventLog 时遇到了一个小问题。我有以下代码;
class WindowsService : ServiceBase
{
public WindowsService()
{
((ISupportInitialize)this.EventLog).BeginInit();
if (!EventLog.SourceExists(this.ServiceName))
{
EventLog.CreateEventSource(this.ServiceName, "Application");
}
((ISupportInitialize)this.EventLog).EndInit();
}
}
这是基于 MSDN 文章和此处的另一个 SO 问题,它一直运行到昨晚,但是今天早上它无法正常工作并出现错误
成员'EventLog.SourceExists(string)'不能用实例引用访问;用类型名称限定它
成员'EventLog.CreateEventSource(string, string)'不能用实例引用访问;用类型名称限定它
我不确定为什么,我已经检查了备份,但也出现了错误。
有没有人有什么想法?
谢谢
SourceExists
和 CreateEventSource
是静态方法,您需要使用类型名称而不是实例变量来限定它们。基于错误和这个:
this.EventLog
大概你有一个名为 EventLog
的实例变量。将其重命名为不那么混乱的名称,例如 CurrentEventLog
。任何不与 现有 名称冲突的有意义的名称。
基本上,不要将变量命名为与其类型相同的名称。这不仅会引起编译器的混淆,还会引起必须维护该代码的任何人的混淆。
我正在创建一个 Windows 服务,但在尝试写入 EventLog 时遇到了一个小问题。我有以下代码;
class WindowsService : ServiceBase
{
public WindowsService()
{
((ISupportInitialize)this.EventLog).BeginInit();
if (!EventLog.SourceExists(this.ServiceName))
{
EventLog.CreateEventSource(this.ServiceName, "Application");
}
((ISupportInitialize)this.EventLog).EndInit();
}
}
这是基于 MSDN 文章和此处的另一个 SO 问题,它一直运行到昨晚,但是今天早上它无法正常工作并出现错误
成员'EventLog.SourceExists(string)'不能用实例引用访问;用类型名称限定它
成员'EventLog.CreateEventSource(string, string)'不能用实例引用访问;用类型名称限定它
我不确定为什么,我已经检查了备份,但也出现了错误。
有没有人有什么想法?
谢谢
SourceExists
和 CreateEventSource
是静态方法,您需要使用类型名称而不是实例变量来限定它们。基于错误和这个:
this.EventLog
大概你有一个名为 EventLog
的实例变量。将其重命名为不那么混乱的名称,例如 CurrentEventLog
。任何不与 现有 名称冲突的有意义的名称。
基本上,不要将变量命名为与其类型相同的名称。这不仅会引起编译器的混淆,还会引起必须维护该代码的任何人的混淆。