Langue

IRecordSequence.ReadLogRecords Méthode

Définition

En cas de substitution dans une classe dérivée, retourne une collection énumérable d’enregistrements dans la séquence.

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)

Paramètres

start
SequenceNumber

Numéro de séquence du premier enregistrement où commence la lecture.

logRecordEnum
LogRecordEnumeratorType

Valeur valide LogRecordEnumeratorType qui spécifie la manière (c’est-à-dire, vers l’avant ou vers l’arrière) dans laquelle les enregistrements doivent être lus à partir d’un LogRecordSequence.

Retours

Collection énumérable d’enregistrements dans la séquence.

Exceptions

Un ou plusieurs arguments ne sont pas valides.

Une erreur d’E/S s’est produite lors de la lecture de l’enregistrement.

La méthode a été appelée après la suppression de la séquence.

Exemples

Cet exemple illustre l’utilisation de la ReadLogRecords méthode.

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

Remarques

En cas de substitution dans une classe dérivée, retourne une collection énumérable d’enregistrements dans la séquence. L’ordre des enregistrements énumérés dépend de la valeur du logRecordEnum paramètre.

S’applique à