IRecordSequence.ReadLogRecords 메서드
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
파생 클래스에서 재정의되는 경우 시퀀스에 있는 레코드의 열거 가능한 컬렉션을 반환합니다.
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)
매개 변수
- start
- SequenceNumber
읽기가 시작되는 첫 번째 레코드의 시퀀스 번호입니다.
- logRecordEnum
- LogRecordEnumeratorType
LogRecordEnumeratorType에서 레코드를 읽는 방식(즉 앞으로 또는 뒤로)을 지정하는 유효한 LogRecordSequence 값입니다.
반환
시퀀스에 있는 레코드의 열거 가능한 컬렉션입니다.
예외
하나 이상의 인수가 잘못된 경우
레코드를 읽는 동안 I/O 오류가 발생한 경우
시퀀스가 삭제된 후 메서드가 호출된 경우
예제
이 샘플에서는 메서드의 사용을 보여 줍니다 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()}");
}
}
}
설명
파생 클래스에서 재정의되는 경우 시퀀스에 있는 레코드의 열거 가능한 컬렉션을 반환합니다. 열거된 레코드의 순서는 매개 변수의 logRecordEnum
값에 따라 달라집니다.
적용 대상
GitHub에서 Microsoft와 공동 작업
이 콘텐츠의 원본은 GitHub에서 찾을 수 있으며, 여기서 문제와 끌어오기 요청을 만들고 검토할 수도 있습니다. 자세한 내용은 참여자 가이드를 참조하세요.
.NET