0

我正在尝试使用EventLogReaderEventRecord类从本地计算机读取事件日志。使用 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);
    }
}
4

1 回答 1

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();
    }
}
于 2016-10-14T21:41:48.360 回答