IRecordSequence.ReadLogRecords Methode
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Gibt beim Überschreiben in einer abgeleiteten Klasse eine zählbare Auflistung der Datensätze in der Sequenz zurück.
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)
Parameter
- start
- SequenceNumber
Die Sequenznummer des ersten Datensatzes, bei dem mit dem Lesen begonnen wird.
- logRecordEnum
- LogRecordEnumeratorType
Ein gültiger LogRecordEnumeratorType-Wert, der die Art (vorwärts oder rückwärts) angibt, in der Datensätze aus einer LogRecordSequence gelesen werden sollten.
Gibt zurück
Eine zählbare Auflistung von Datensätzen in der Sequenz.
Ausnahmen
Mindestens eines der Argumente ist ungültig.
Beim Lesen des Datensatzes ist ein E/A-Fehler aufgetreten.
Die Methode wurde aufgerufen, nachdem die Sequenz verworfen wurde.
Beispiele
Dieses Beispiel veranschaulicht die Verwendung der ReadLogRecords-Methode.
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()}");
}
}
}
Hinweise
Gibt beim Überschreiben in einer abgeleiteten Klasse eine zählbare Auflistung der Datensätze in der Sequenz zurück. Die Reihenfolge der aufgelisteten Datensätze hängt vom Wert des logRecordEnum
-Parameters ab.