LogRecordSequence.Append Método
Definição
Importante
Algumas informações dizem respeito a um produto pré-lançado que pode ser substancialmente modificado antes de ser lançado. A Microsoft não faz garantias, de forma expressa ou implícita, em relação à informação aqui apresentada.
Escreve um registo logarítmico no IRecordSequence.
Sobrecargas
| Name | Description |
|---|---|
| Append(ArraySegment<Byte>, SequenceNumber, SequenceNumber, RecordAppendOptions, ReservationCollection) |
Adiciona um registo logarítmic ao IRecordSequence, usando espaço previamente reservado na sequência. Este método não pode ser herdado. |
| Append(IList<ArraySegment<Byte>>, SequenceNumber, SequenceNumber, RecordAppendOptions, ReservationCollection) |
Adiciona um registo logarítmic ao IRecordSequence, usando espaço previamente reservado na sequência. Este método não pode ser herdado. |
| Append(ArraySegment<Byte>, SequenceNumber, SequenceNumber, RecordAppendOptions) |
Escreve um registo logarítmico no LogRecordSequence. Este método não pode ser herdado. |
| Append(IList<ArraySegment<Byte>>, SequenceNumber, SequenceNumber, RecordAppendOptions) |
Acrescenta um registo logarítmico ao IRecordSequencearquivo . Este método não pode ser herdado. |
Exemplos
Este exemplo mostra como usar o Append membro
// Append records. Appending three records.
public void AppendRecords()
{
Console.WriteLine("Appending Log Records...");
SequenceNumber previous = SequenceNumber.Invalid;
previous = sequence.Append(CreateData("Hello World!"), SequenceNumber.Invalid, SequenceNumber.Invalid, RecordAppendOptions.ForceFlush);
previous = sequence.Append(CreateData("This is my first Logging App"), SequenceNumber.Invalid, SequenceNumber.Invalid, RecordAppendOptions.ForceFlush);
previous = sequence.Append(CreateData("Using LogRecordSequence..."), SequenceNumber.Invalid, SequenceNumber.Invalid, RecordAppendOptions.ForceFlush);
Console.WriteLine("Done...");
}
' Append records. Appending three records.
Public Sub AppendRecords()
Console.WriteLine("Appending Log Records...")
Dim previous As SequenceNumber = SequenceNumber.Invalid
previous = sequence.Append(CreateData("Hello World!"), SequenceNumber.Invalid, SequenceNumber.Invalid, RecordAppendOptions.ForceFlush)
previous = sequence.Append(CreateData("This is my first Logging App"), SequenceNumber.Invalid, SequenceNumber.Invalid, RecordAppendOptions.ForceFlush)
previous = sequence.Append(CreateData("Using LogRecordSequence..."), SequenceNumber.Invalid, SequenceNumber.Invalid, RecordAppendOptions.ForceFlush)
Console.WriteLine("Done...")
End Sub
Append(ArraySegment<Byte>, SequenceNumber, SequenceNumber, RecordAppendOptions, ReservationCollection)
Adiciona um registo logarítmic ao IRecordSequence, usando espaço previamente reservado na sequência. Este método não pode ser herdado.
public:
virtual System::IO::Log::SequenceNumber Append(ArraySegment<System::Byte> data, System::IO::Log::SequenceNumber nextUndoRecord, System::IO::Log::SequenceNumber previousRecord, System::IO::Log::RecordAppendOptions recordAppendOptions, System::IO::Log::ReservationCollection ^ reservations);
public System.IO.Log.SequenceNumber Append(ArraySegment<byte> data, System.IO.Log.SequenceNumber nextUndoRecord, System.IO.Log.SequenceNumber previousRecord, System.IO.Log.RecordAppendOptions recordAppendOptions, System.IO.Log.ReservationCollection reservations);
abstract member Append : ArraySegment<byte> * System.IO.Log.SequenceNumber * System.IO.Log.SequenceNumber * System.IO.Log.RecordAppendOptions * System.IO.Log.ReservationCollection -> System.IO.Log.SequenceNumber
override this.Append : ArraySegment<byte> * System.IO.Log.SequenceNumber * System.IO.Log.SequenceNumber * System.IO.Log.RecordAppendOptions * System.IO.Log.ReservationCollection -> System.IO.Log.SequenceNumber
Public Function Append (data As ArraySegment(Of Byte), nextUndoRecord As SequenceNumber, previousRecord As SequenceNumber, recordAppendOptions As RecordAppendOptions, reservations As ReservationCollection) As SequenceNumber
Parâmetros
- data
- ArraySegment<Byte>
Uma lista de segmentos de array de bytes que serão concatenados e adicionados como registo.
- nextUndoRecord
- SequenceNumber
O número de sequência do registo seguinte na ordem especificada pelo utilizador.
- previousRecord
- SequenceNumber
O número de sequência do próximo registo na ordem Anterior.
- recordAppendOptions
- RecordAppendOptions
Um valor válido de RecordAppendOptions isso especifica como os dados devem ser escritos.
- reservations
- ReservationCollection
A ReservationCollection que contém a reserva que deve ser usada para este registo.
Devoluções
O número de sequência do registo de registo anexado.
Implementações
Exceções
userRecord ou previousRecord não é válida para esta sequência.
-ou-
data não pode ser acrescentado porque é maior do que o tamanho máximo do registo.
-ou-
reservations não foi criado por esta sequência de registos.
Um ou mais dos argumentos são null.
userRecord ou previousRecord não está entre os números base e último desta sequência.
O pedido não pôde ser realizado devido a uma exceção inesperada de I/O.
-ou-
O pedido não pôde ser realizado devido a um erro no dispositivo de E/S.
A operação não pode ser realizada porque a sequência de registos foi aberta com acesso apenas de leitura.
O método era chamado depois de a sequência ter sido eliminada.
Não há memória suficiente para continuar a execução do programa.
A sequência de discos está cheia.
O acesso para a sequência de registo especificada é negado pelo sistema operativo.
Não se encontra nenhuma reserva suficientemente grande para caber data em reservations.
Observações
Os dados contidos no data parâmetro serão concatenados num array de um único byte para serem adicionados como registo. No entanto, não é prevista a divisão dos dados em segmentos de array quando o registo é lido.
O registo anexado irá ocupar espaço previamente reservado, usando uma reserva especificada pelo reservations parâmetro. Se o anexo for bem-sucedido, irá consumir a menor área de reserva que possa conter os dados, e essa área será removida da coleção.
Normalmente, este método conclui-se antes do registo ter sido escrito. Para garantir que um registo foi escrito, especifique o ForceFlush flag usando o recordAppendOptions parâmetro ou chame o Flush método.
Aplica-se a
Append(IList<ArraySegment<Byte>>, SequenceNumber, SequenceNumber, RecordAppendOptions, ReservationCollection)
Adiciona um registo logarítmic ao IRecordSequence, usando espaço previamente reservado na sequência. Este método não pode ser herdado.
public:
virtual System::IO::Log::SequenceNumber Append(System::Collections::Generic::IList<ArraySegment<System::Byte>> ^ data, System::IO::Log::SequenceNumber userRecord, System::IO::Log::SequenceNumber previousRecord, System::IO::Log::RecordAppendOptions recordAppendOptions, System::IO::Log::ReservationCollection ^ reservations);
public System.IO.Log.SequenceNumber Append(System.Collections.Generic.IList<ArraySegment<byte>> data, System.IO.Log.SequenceNumber userRecord, System.IO.Log.SequenceNumber previousRecord, System.IO.Log.RecordAppendOptions recordAppendOptions, System.IO.Log.ReservationCollection reservations);
abstract member Append : System.Collections.Generic.IList<ArraySegment<byte>> * System.IO.Log.SequenceNumber * System.IO.Log.SequenceNumber * System.IO.Log.RecordAppendOptions * System.IO.Log.ReservationCollection -> System.IO.Log.SequenceNumber
override this.Append : System.Collections.Generic.IList<ArraySegment<byte>> * System.IO.Log.SequenceNumber * System.IO.Log.SequenceNumber * System.IO.Log.RecordAppendOptions * System.IO.Log.ReservationCollection -> System.IO.Log.SequenceNumber
Public Function Append (data As IList(Of ArraySegment(Of Byte)), userRecord As SequenceNumber, previousRecord As SequenceNumber, recordAppendOptions As RecordAppendOptions, reservations As ReservationCollection) As SequenceNumber
Parâmetros
- data
- IList<ArraySegment<Byte>>
Uma lista de segmentos de array de bytes que serão concatenados e adicionados como registo.
- userRecord
- SequenceNumber
O número de sequência do registo seguinte na ordem especificada pelo utilizador.
- previousRecord
- SequenceNumber
O número de sequência do próximo registo na ordem Anterior.
- recordAppendOptions
- RecordAppendOptions
Um valor válido de RecordAppendOptions isso especifica como os dados devem ser escritos.
- reservations
- ReservationCollection
A ReservationCollection que contém a reserva que deve ser usada para este registo.
Devoluções
O número de sequência do registo de registo anexado.
Implementações
Exceções
userRecord ou previousRecord não é válida para esta sequência.
-ou-
data não pode ser acrescentado porque é maior do que o tamanho máximo do registo.
-ou-
reservations não foi criado por esta sequência de registos.
Um ou mais dos argumentos são null.
userRecord ou previousRecord não está entre os números base e último desta sequência.
O pedido não pôde ser realizado devido a uma exceção inesperada de I/O.
-ou-
O pedido não pôde ser realizado devido a um erro no dispositivo de E/S.
A operação não pode ser realizada porque a sequência de registos foi aberta com acesso apenas de leitura.
O método era chamado depois de a sequência ter sido eliminada.
Não há memória suficiente para continuar a execução do programa.
A sequência de discos está cheia.
O acesso para a sequência de registo especificada é negado pelo sistema operativo.
Não se encontra nenhuma reserva suficientemente grande para caber data em reservations.
Observações
Os dados contidos no data parâmetro serão concatenados num array de um único byte para serem adicionados como registo. No entanto, não é prevista a divisão dos dados em segmentos de array quando o registo é lido.
O registo anexado irá ocupar espaço previamente reservado, usando uma reserva especificada pelo reservations parâmetro. Se o anexo for bem-sucedido, irá consumir a menor área de reserva que possa conter os dados, e essa área será removida da coleção.
Normalmente, este método conclui-se antes do registo ter sido escrito. Para garantir que um registo foi escrito, especifique o ForceFlush flag usando o recordAppendOptions parâmetro ou chame o Flush método.
Aplica-se a
Append(ArraySegment<Byte>, SequenceNumber, SequenceNumber, RecordAppendOptions)
Escreve um registo logarítmico no LogRecordSequence. Este método não pode ser herdado.
public:
virtual System::IO::Log::SequenceNumber Append(ArraySegment<System::Byte> data, System::IO::Log::SequenceNumber nextUndoRecord, System::IO::Log::SequenceNumber previousRecord, System::IO::Log::RecordAppendOptions recordAppendOptions);
public System.IO.Log.SequenceNumber Append(ArraySegment<byte> data, System.IO.Log.SequenceNumber nextUndoRecord, System.IO.Log.SequenceNumber previousRecord, System.IO.Log.RecordAppendOptions recordAppendOptions);
abstract member Append : ArraySegment<byte> * System.IO.Log.SequenceNumber * System.IO.Log.SequenceNumber * System.IO.Log.RecordAppendOptions -> System.IO.Log.SequenceNumber
override this.Append : ArraySegment<byte> * System.IO.Log.SequenceNumber * System.IO.Log.SequenceNumber * System.IO.Log.RecordAppendOptions -> System.IO.Log.SequenceNumber
Public Function Append (data As ArraySegment(Of Byte), nextUndoRecord As SequenceNumber, previousRecord As SequenceNumber, recordAppendOptions As RecordAppendOptions) As SequenceNumber
Parâmetros
- data
- ArraySegment<Byte>
Uma lista de segmentos de array de bytes que serão concatenados e adicionados como registo.
- nextUndoRecord
- SequenceNumber
O número de sequência do registo seguinte na ordem especificada pelo utilizador.
- previousRecord
- SequenceNumber
O número de sequência do próximo registo na ordem Anterior.
- recordAppendOptions
- RecordAppendOptions
Um valor válido de RecordAppendOptions isso especifica como os dados devem ser escritos.
Devoluções
O número de sequência do registo de registo anexado.
Implementações
Exceções
userRecord ou previousRecord não é válida para esta sequência.
-ou-
data não pode ser acrescentado porque é maior do que o tamanho máximo do registo.
-ou-
reservations não foi criado por esta sequência de registos.
Um ou mais dos argumentos são null.
userRecord ou previousRecord não está entre os números base e último desta sequência.
O pedido não pôde ser realizado devido a uma exceção inesperada de I/O.
-ou-
O pedido não pôde ser realizado devido a um erro no dispositivo de E/S.
A operação não pode ser realizada porque a sequência de registos foi aberta com acesso apenas de leitura.
O método era chamado depois de a sequência ter sido eliminada.
Não há memória suficiente para continuar a execução do programa.
A sequência de discos está cheia.
O acesso para a sequência de registo especificada é negado pelo sistema operativo.
Exemplos
O exemplo seguinte demonstra como usar este método para anexar um registo logarítmico à sequência.
// Start Appending in two streams with interleaving appends.
SequenceNumber previous1 = SequenceNumber.Invalid;
SequenceNumber previous2 = SequenceNumber.Invalid;
Console.WriteLine("Appending interleaving records in stream1 and stream2...");
Console.WriteLine();
// Append two records in stream1.
previous1 = sequence1.Append(
CreateData("MyLogStream1: Hello World!"),
SequenceNumber.Invalid,
SequenceNumber.Invalid,
RecordAppendOptions.ForceFlush);
previous1 = sequence1.Append(
CreateData("MyLogStream1: This is my first Logging App"),
previous1,
previous1,
RecordAppendOptions.ForceFlush);
// Append two records in stream2.
previous2 = sequence2.Append(
CreateData("MyLogStream2: Hello World!"),
SequenceNumber.Invalid,
SequenceNumber.Invalid,
RecordAppendOptions.ForceFlush);
previous2 = sequence2.Append(
CreateData("MyLogStream2: This is my first Logging App"),
previous2,
previous2,
RecordAppendOptions.ForceFlush);
// Append the third record in stream1.
previous1 = sequence1.Append(CreateData(
"MyLogStream1: Using LogRecordSequence..."),
previous1,
previous1,
RecordAppendOptions.ForceFlush);
// Append the third record in stream2.
previous2 = sequence2.Append(
CreateData("MyLogStream2: Using LogRecordSequence..."),
previous2,
previous2,
RecordAppendOptions.ForceFlush);
' Start Appending in two streams with interleaving appends.
Dim previous1 As SequenceNumber = SequenceNumber.Invalid
Dim previous2 As SequenceNumber = SequenceNumber.Invalid
Console.WriteLine("Appending interleaving records in stream1 and stream2...")
Console.WriteLine()
' Append two records in stream1.
previous1 = sequence1.Append(CreateData("MyLogStream1: Hello World!"), SequenceNumber.Invalid, SequenceNumber.Invalid, RecordAppendOptions.ForceFlush)
previous1 = sequence1.Append(CreateData("MyLogStream1: This is my first Logging App"), previous1, previous1, RecordAppendOptions.ForceFlush)
' Append two records in stream2.
previous2 = sequence2.Append(CreateData("MyLogStream2: Hello World!"), SequenceNumber.Invalid, SequenceNumber.Invalid, RecordAppendOptions.ForceFlush)
previous2 = sequence2.Append(CreateData("MyLogStream2: This is my first Logging App"), previous2, previous2, RecordAppendOptions.ForceFlush)
' Append the third record in stream1.
previous1 = sequence1.Append(CreateData("MyLogStream1: Using LogRecordSequence..."), previous1, previous1, RecordAppendOptions.ForceFlush)
' Append the third record in stream2.
previous2 = sequence2.Append(CreateData("MyLogStream2: Using LogRecordSequence..."), previous2, previous2, RecordAppendOptions.ForceFlush)
Observações
Os dados contidos no data parâmetro serão concatenados num array de um único byte para serem adicionados como registo. No entanto, não é prevista a divisão dos dados em segmentos de array quando o registo é lido.
Normalmente, este método conclui-se antes do registo ter sido escrito. Para garantir que um registo foi escrito, especifique o ForceFlush flag usando o recordAppendOptions parâmetro ou chame o Flush método.
Aplica-se a
Append(IList<ArraySegment<Byte>>, SequenceNumber, SequenceNumber, RecordAppendOptions)
Acrescenta um registo logarítmico ao IRecordSequencearquivo . Este método não pode ser herdado.
public:
virtual System::IO::Log::SequenceNumber Append(System::Collections::Generic::IList<ArraySegment<System::Byte>> ^ data, System::IO::Log::SequenceNumber userRecord, System::IO::Log::SequenceNumber previousRecord, System::IO::Log::RecordAppendOptions recordAppendOptions);
public System.IO.Log.SequenceNumber Append(System.Collections.Generic.IList<ArraySegment<byte>> data, System.IO.Log.SequenceNumber userRecord, System.IO.Log.SequenceNumber previousRecord, System.IO.Log.RecordAppendOptions recordAppendOptions);
abstract member Append : System.Collections.Generic.IList<ArraySegment<byte>> * System.IO.Log.SequenceNumber * System.IO.Log.SequenceNumber * System.IO.Log.RecordAppendOptions -> System.IO.Log.SequenceNumber
override this.Append : System.Collections.Generic.IList<ArraySegment<byte>> * System.IO.Log.SequenceNumber * System.IO.Log.SequenceNumber * System.IO.Log.RecordAppendOptions -> System.IO.Log.SequenceNumber
Public Function Append (data As IList(Of ArraySegment(Of Byte)), userRecord As SequenceNumber, previousRecord As SequenceNumber, recordAppendOptions As RecordAppendOptions) As SequenceNumber
Parâmetros
- data
- IList<ArraySegment<Byte>>
Uma lista de segmentos de array de bytes que serão concatenados e adicionados como registo.
- userRecord
- SequenceNumber
O número de sequência do registo seguinte na ordem especificada pelo utilizador.
- previousRecord
- SequenceNumber
O número de sequência do próximo registo na ordem Anterior.
- recordAppendOptions
- RecordAppendOptions
Um valor válido de RecordAppendOptions isso especifica como os dados devem ser escritos.
Devoluções
O número de sequência do registo de registo anexado.
Implementações
Exceções
userRecord ou previousRecord não é válida para esta sequência.
-ou-
data não pode ser acrescentado porque é maior do que o tamanho máximo do registo.
-ou-
reservations não foi criado por esta sequência de registos.
Um ou mais dos argumentos são null.
userRecord ou previousRecord não está entre os números base e último desta sequência.
O pedido não pôde ser realizado devido a uma exceção inesperada de I/O.
-ou-
O pedido não pôde ser realizado devido a um erro no dispositivo de E/S.
A operação não pode ser realizada porque a sequência de registos foi aberta com acesso apenas de leitura.
O método era chamado depois de a sequência ter sido eliminada.
Não há memória suficiente para continuar a execução do programa.
A sequência de discos está cheia.
O acesso para a sequência de registo especificada é negado pelo sistema operativo.
Observações
Os dados contidos no data parâmetro serão concatenados num array de um único byte para serem adicionados como registo. No entanto, não é prevista a divisão dos dados em segmentos de array quando o registo é lido.
Normalmente, este método conclui-se antes do registo ter sido escrito. Para garantir que um registo foi escrito, especifique o ForceFlush flag usando o recordAppendOptions parâmetro ou chame o Flush método.