[英]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
。 与现有名称不冲突的任何有意义的名称。
基本上,不要将变量的名称与其类型相同。 这不仅会引起编译器的混乱,而且还会引起必须维护该代码的任何人的混乱。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.