IRecordSequence.ReadLogRecords Methode

Definitie

Wanneer deze worden overschreven in een afgeleide klasse, retourneert u een opsommingsbare verzameling records in de reeks.

public:
 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>
Public Function ReadLogRecords (start As SequenceNumber, logRecordEnum As LogRecordEnumeratorType) As IEnumerable(Of LogRecord)

Parameters

start
SequenceNumber

Het volgnummer van de eerste record waar het lezen begint.

logRecordEnum
LogRecordEnumeratorType

Een geldige LogRecordEnumeratorType waarde die de manier aangeeft (dat wil gezegd, vooruit of achteruit) waarin records moeten worden gelezen uit een LogRecordSequence.

Retouren

Een inventariserbare verzameling records in de reeks.

Uitzonderingen

Een of meer argumenten zijn ongeldig.

Er is een I/O-fout opgetreden tijdens het lezen van de record.

De methode is aangeroepen nadat de reeks is verwijderd.

Voorbeelden

In dit voorbeeld wordt het gebruik van de ReadLogRecords methode gedemonstreert.

using System;
 using System.IO;
 using System.IO.Log;

 class ReadRecordsSample
 {
     static SequenceNumber AppendRecord(IRecordSequence sequence,
                                        string message,
                                        SequenceNumber user,
                                        SequenceNumber previous)
     {
         MemoryStream data = new MemoryStream();
         BinaryWriter writer = new BinaryWriter(data);
         writer.Write(message);

         ArraySegment<byte>[] segments;
         segments = new ArraySegment<byte>[1];
         segments[0] = new ArraySegment(data.GetBuffer(),
                                        0,
                                        Data.Length);

         return sequence.Append(segments,
                                user,
                                previous,
                                WriteFlags.None);
     }

     public static void Main(string[] args)
     {
         IRecordSequence sequence;
         sequence = new FileIRecordSequence(args[0]);

         SequenceNumber a, b, c, d;

         a = AppendRecord(sequence,
                          "This is record A",
                          SequenceNumber.Invalid,
                          SequenceNumber.Invalid);
         Console.WriteLine($"Record A has sequence number {a}");

         b = AppendRecord(sequence,
                          "This is record B",
                          a,
                          a);
         Console.WriteLine($"Record B has sequence number {b}");

         c = AppendRecord(sequence,
                          "This is record C",
                          a,
                          a);
         Console.WriteLine($"Record C has sequence number {c}");

         d = AppendRecord(sequence,
                          "This is record D",
                          b,
                          c);
         Console.WriteLine($"Record D has sequence number {d}");

         foreach(LogRecord record in
                 sequence.ReadLogRecords(a, ReadDirection.Forward))
         {
             BinaryReader reader = new BinaryReader(record.Data);
             Console.WriteLine($"{record.SequenceNumber}: {reader.ReadString()}");
         }

         foreach(LogRecord record in
                 sequence.ReadLogRecords(d, ReadDirection.User))
         {
             BinaryReader reader = new BinaryReader(record.Data);
             Console.WriteLine($"{record.SequenceNumber}: {reader.ReadString()}");
         }

         foreach(LogRecord record in
                 sequence.ReadLogRecords(d, ReadDirection.Previous))
         {
             BinaryReader reader = new BinaryReader(record.Data);
             Console.WriteLine($"{record.SequenceNumber}: {reader.ReadString()}");
         }
     }
       }

Opmerkingen

Wanneer deze worden overschreven in een afgeleide klasse, retourneert u een opsommingsbare verzameling records in de reeks. De volgorde van de geïnventareerde records is afhankelijk van de waarde van de logRecordEnum parameter.

Van toepassing op