LogRecordSequence.ReadLogRecords 方法
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
返回序列中记录的可枚举集合。 无法继承此方法。
public:
virtual 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>
override this.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 中读取记录的方式(即,向前或向后)。
返回
序列中记录的可枚举集合。
实现
例外
start
不在此序列的基序列号和最后一个序列号之间。
由于出现意外的 I/O 异常,因此无法执行该请求。
- 或 -
由于出现 I/O 设备错误,因此无法执行该请求。
- 或 -
用于写入日志记录的缓冲区大小大于用于读取日志记录的缓冲区大小。
- 或 -
记录序列已损坏。
- 或 -
指定的日志文件格式或版本无效。
- 或 -
记录是使用不兼容的记录序列版本写入的。
操作无效,原因是枚举尚未开始。 必须调用 MoveNext()。
该方法是在序列已释放之后调用的。
没有足够的内存来继续执行该程序。
操作系统拒绝了对指定的日志序列的访问。
示例
此示例演示如何在循环中使用 ReadLogRecords。
foreach (LogRecord record in sequence1.ReadLogRecords(sequence1.BaseSequenceNumber, LogRecordEnumeratorType.Next))
{
byte[] data = new byte[record.Data.Length];
record.Data.Read(data, 0, (int)record.Data.Length);
string mystr = enc.GetString(data);
Console.WriteLine(" {0}", mystr);
}
For Each record In sequence1.ReadLogRecords(sequence1.BaseSequenceNumber, LogRecordEnumeratorType.Next)
Dim data(record.Data.Length - 1) As Byte
record.Data.Read(data, 0, CInt(Fix(record.Data.Length)))
Dim mystr As String = enc.GetString(data)
Console.WriteLine(" {0}", mystr)
Next record
注解
此方法返回序列中记录的可枚举集合。 所枚举记录的顺序取决于 logRecordEnum
参数的值。