C#|接收CS0236错误:字段初始值设定项无法引用非静态字段,方法或属性'getInfo.BSN_Navigator'

时间:2016-10-14 21:33:34

标签: c# readeventlog

我正在尝试使用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);
    }
}

1 个答案:

答案 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();
    }
}