我正在尝试使用EventLogReader
和EventRecord
类从本地计算机读取事件日志。使用C#。
我一直收到错误
CS0236错误:字段初始值设定项无法引用非静态字段,方法或属性'getInfo.BSN_Navigator'
不确定我做错了什么。
代码:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Diagnostics.Eventing.Reader;
/// </var bank>
/// </var bank>
namespace EventLogInfoReader
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine();
String inputString = Console.ReadLine();
}
}
}
public class getInfo
{
public static PathType FilePath { get; private set; }
EventLogReader BSN_Navigator = new EventLogReader("c:\\Users\\banvilb\\Documents\\Event Log\\FalconBackup_Sep192016T124905\\BSN_Navigator.evt", FilePath);
EventRecord bsnRecord = BSN_Navigator.ReadEvent();
public void getLogName()
{
string x = bsnRecord.LogName;
Console.WriteLine(x);
}
public void getId()
{
int x = bsnRecord.Id;
Console.WriteLine(x);
}
}
答案 0 :(得分:1)
EventRecord bsnRecord = BSN_Navigator.ReadEvent();
需要进入构造函数。
字段的限制在于如何在声明中初始化它们。在您的情况下,您尝试调用方法,但不能调用方法之外的方法。这意味着您需要在构造函数中初始化它。
public class getInfo
{
EventLogReader BSN_Navigator = new EventLogReader("BSN_Navigator.evt", FilePath);
EventRecord bsnRecord;
public getInfo()
{
bsnRecord = BSN_Navigator.ReadEvent();
}
}