FileRecordSequence.ReadLogRecords Metod

Definition

Returnerar en uppräkningsbar samling poster i sekvensen. Den här metoden kan inte ärvas.

public:
 virtual System::Collections::Generic::IEnumerable<System::IO::Log::LogRecord ^> ^ ReadLogRecords(System::IO::Log::SequenceNumber start, System::IO::Log::LogRecordEnumeratorType logRecordEnum);
public System.Collections.Generic.IEnumerable<System.IO.Log.LogRecord> ReadLogRecords(System.IO.Log.SequenceNumber start, System.IO.Log.LogRecordEnumeratorType logRecordEnum);
abstract member ReadLogRecords : System.IO.Log.SequenceNumber * System.IO.Log.LogRecordEnumeratorType -> seq<System.IO.Log.LogRecord>
override this.ReadLogRecords : System.IO.Log.SequenceNumber * System.IO.Log.LogRecordEnumeratorType -> seq<System.IO.Log.LogRecord>
Public Function ReadLogRecords (start As SequenceNumber, logRecordEnum As LogRecordEnumeratorType) As IEnumerable(Of LogRecord)

Parametrar

start
SequenceNumber

Sekvensnumret för den första posten där läsningen börjar.

logRecordEnum
LogRecordEnumeratorType

Ett giltigt LogRecordEnumeratorType värde som anger det sätt (dvs. framåt eller bakåt) på vilket poster ska läsas från en LogRecordSequence.

Returer

En uppräkningsbar samling poster i sekvensen.

Implementeringar

Undantag

Ett eller flera av argumenten ligger inom intervallet.

Det går inte att utföra åtgärden eftersom postsekvensen öppnades med skrivskyddad åtkomst.

Postsekvensen är skadad.

-eller-

Posten skrevs med en inkompatibel version av postsekvensen.

Uppräkningen har avslutats.

-eller-

Uppräkningen har inte startats. Ett anrop till MoveNext() måste göras.

Metoden anropades efter att sekvensen har tagits bort.

Det finns inte tillräckligt med minne för att fortsätta körningen av programmet.

Exempel

I följande exempel visas hur du kan använda den här metoden för att läsa posterna i en loggsekvens.

// Read the records added to the log.
    public void ReadRecords()
    {
        Encoding enc = Encoding.Unicode;

        Console.WriteLine();

        Console.WriteLine("Reading Log Records...");
        try
        {
            foreach (LogRecord record in this.sequence.ReadLogRecords(this.sequence.BaseSequenceNumber, LogRecordEnumeratorType.Next))
            {
                byte[] data = new byte[record.Data.Length];
                record.Data.Read(data, 0, (int)record.Data.Length);
                string mystr = enc.GetString(data);
                Console.WriteLine("    {0}", mystr);
            }
        }
        catch (Exception e)
        {
            Console.WriteLine("Exception {0} {1}", e.GetType(), e.Message);
        }

        Console.WriteLine();
    }
' Read the records added to the log. 
    Public Sub ReadRecords()
        Dim enc As Encoding = Encoding.Unicode

        Console.WriteLine()

        Console.WriteLine("Reading Log Records...")
        Try
            For Each record In Me.sequence.ReadLogRecords(Me.sequence.BaseSequenceNumber, LogRecordEnumeratorType.Next)
                Dim data(record.Data.Length - 1) As Byte
                record.Data.Read(data, 0, CInt(Fix(record.Data.Length)))
                Dim mystr As String = enc.GetString(data)
                Console.WriteLine("    {0}", mystr)
            Next record
        Catch e As Exception
            Console.WriteLine("Exception {0} {1}", e.GetType(), e.Message)
        End Try

        Console.WriteLine()
    End Sub

Kommentarer

Den här metoden returnerar en uppräkningsbar samling poster i sekvensen. Ordningen på de uppräknade posterna beror på parameterns logRecordEnum värde.

Gäller för