0

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);
    }
}
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 に答える