IRecordSequence.ReadLogRecords Méthode
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
En cas de substitution dans une classe dérivée, retourne une collection dénombrable des enregistrements de 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 à partir duquel démarre la lecture.
- logRecordEnum
- LogRecordEnumeratorType
Valeur LogRecordEnumeratorType valide qui spécifie le sens de lecture (c'est-à-dire, vers l'avant ou l'arrière) des enregistrements à partir d'une LogRecordSequence.
Retours
Collection dénombrable des enregistrements de 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 méthode ReadLogRecords.
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 dénombrable des enregistrements de la séquence. L'ordre des enregistrements énumérés dépend de la valeur du paramètre logRecordEnum
.