LogRecordSequence.Append Método
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Escribe un registro de registro en .IRecordSequence
Sobrecargas
| Nombre | Description |
|---|---|
| Append(ArraySegment<Byte>, SequenceNumber, SequenceNumber, RecordAppendOptions, ReservationCollection) |
Anexa un registro de registro a , IRecordSequenceutilizando el espacio reservado previamente en la secuencia. Este método no se puede heredar. |
| Append(IList<ArraySegment<Byte>>, SequenceNumber, SequenceNumber, RecordAppendOptions, ReservationCollection) |
Anexa un registro de registro a , IRecordSequenceutilizando el espacio reservado previamente en la secuencia. Este método no se puede heredar. |
| Append(ArraySegment<Byte>, SequenceNumber, SequenceNumber, RecordAppendOptions) |
Escribe un registro de registro en .LogRecordSequence Este método no se puede heredar. |
| Append(IList<ArraySegment<Byte>>, SequenceNumber, SequenceNumber, RecordAppendOptions) |
Anexa un registro de registro a .IRecordSequence Este método no se puede heredar. |
Ejemplos
En este ejemplo se muestra cómo usar el Append miembro
// 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)
Anexa un registro de registro a , IRecordSequenceutilizando el espacio reservado previamente en la secuencia. Este método no se puede heredar.
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>
Lista de segmentos de matriz de bytes que se concatenarán y anexarán como registro.
- nextUndoRecord
- SequenceNumber
Número de secuencia del siguiente registro en el orden especificado por el usuario.
- previousRecord
- SequenceNumber
Número de secuencia del siguiente registro en orden anterior.
- recordAppendOptions
- RecordAppendOptions
Valor válido de RecordAppendOptions que especifica cómo se deben escribir los datos.
- reservations
- ReservationCollection
que ReservationCollection contiene la reserva que se debe usar para este registro.
Devoluciones
Número de secuencia del registro anexado.
Implementaciones
Excepciones
userRecord o previousRecord no es válido para esta secuencia.
O bien
data no se puede anexar porque es mayor que el tamaño máximo del registro.
O bien
reservations esta secuencia de registros no la creó.
Uno o varios de los argumentos son null.
userRecord o previousRecord no está entre la base y los últimos números de secuencia de esta secuencia.
No se pudo realizar la solicitud debido a una excepción de E/S inesperada.
O bien
No se pudo realizar la solicitud debido a un error de dispositivo de E/S.
No se puede realizar la operación porque la secuencia de registros se abrió con acceso de solo lectura.
Se llamó al método después de eliminar la secuencia.
No hay memoria suficiente para continuar con la ejecución del programa.
La secuencia de registros está llena.
El sistema operativo deniega el acceso a la secuencia de registro especificada.
No se puede encontrar ninguna reserva lo suficientemente grande como para caber data en reservations.
Comentarios
Los datos contenidos en el data parámetro se concatenan en una sola matriz de bytes para anexarse como registro. Sin embargo, no se realiza ninguna disposición para dividir los datos en segmentos de matriz cuando se lee el registro.
El registro anexado consumirá espacio que se ha reservado previamente mediante una reserva especificada por el reservations parámetro . Si la anexión se realiza correctamente, consumirá el área de reserva más pequeña que puede contener los datos y ese área de reserva se quitará de la colección.
Normalmente, este método se completa antes de que se haya escrito el registro. Para asegurarse de que se ha escrito un registro, especifique la ForceFlush marca mediante el recordAppendOptions parámetro o llame al Flush método .
Se aplica a
Append(IList<ArraySegment<Byte>>, SequenceNumber, SequenceNumber, RecordAppendOptions, ReservationCollection)
Anexa un registro de registro a , IRecordSequenceutilizando el espacio reservado previamente en la secuencia. Este método no se puede heredar.
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>>
Lista de segmentos de matriz de bytes que se concatenarán y anexarán como registro.
- userRecord
- SequenceNumber
Número de secuencia del siguiente registro en el orden especificado por el usuario.
- previousRecord
- SequenceNumber
Número de secuencia del siguiente registro en orden anterior.
- recordAppendOptions
- RecordAppendOptions
Valor válido de RecordAppendOptions que especifica cómo se deben escribir los datos.
- reservations
- ReservationCollection
que ReservationCollection contiene la reserva que se debe usar para este registro.
Devoluciones
Número de secuencia del registro anexado.
Implementaciones
Excepciones
userRecord o previousRecord no es válido para esta secuencia.
O bien
data no se puede anexar porque es mayor que el tamaño máximo del registro.
O bien
reservations esta secuencia de registros no la creó.
Uno o varios de los argumentos son null.
userRecord o previousRecord no está entre la base y los últimos números de secuencia de esta secuencia.
No se pudo realizar la solicitud debido a una excepción de E/S inesperada.
O bien
No se pudo realizar la solicitud debido a un error de dispositivo de E/S.
No se puede realizar la operación porque la secuencia de registros se abrió con acceso de solo lectura.
Se llamó al método después de eliminar la secuencia.
No hay memoria suficiente para continuar con la ejecución del programa.
La secuencia de registros está llena.
El sistema operativo deniega el acceso a la secuencia de registro especificada.
No se puede encontrar ninguna reserva lo suficientemente grande como para caber data en reservations.
Comentarios
Los datos contenidos en el data parámetro se concatenan en una sola matriz de bytes para anexarse como registro. Sin embargo, no se realiza ninguna disposición para dividir los datos en segmentos de matriz cuando se lee el registro.
El registro anexado consumirá espacio que se ha reservado previamente mediante una reserva especificada por el reservations parámetro . Si la anexión se realiza correctamente, consumirá el área de reserva más pequeña que puede contener los datos y ese área de reserva se quitará de la colección.
Normalmente, este método se completa antes de que se haya escrito el registro. Para asegurarse de que se ha escrito un registro, especifique la ForceFlush marca mediante el recordAppendOptions parámetro o llame al Flush método .
Se aplica a
Append(ArraySegment<Byte>, SequenceNumber, SequenceNumber, RecordAppendOptions)
Escribe un registro de registro en .LogRecordSequence Este método no se puede heredar.
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>
Lista de segmentos de matriz de bytes que se concatenarán y anexarán como registro.
- nextUndoRecord
- SequenceNumber
Número de secuencia del siguiente registro en el orden especificado por el usuario.
- previousRecord
- SequenceNumber
Número de secuencia del siguiente registro en orden anterior.
- recordAppendOptions
- RecordAppendOptions
Valor válido de RecordAppendOptions que especifica cómo se deben escribir los datos.
Devoluciones
Número de secuencia del registro anexado.
Implementaciones
Excepciones
userRecord o previousRecord no es válido para esta secuencia.
O bien
data no se puede anexar porque es mayor que el tamaño máximo del registro.
O bien
reservations esta secuencia de registros no la creó.
Uno o varios de los argumentos son null.
userRecord o previousRecord no está entre la base y los últimos números de secuencia de esta secuencia.
No se pudo realizar la solicitud debido a una excepción de E/S inesperada.
O bien
No se pudo realizar la solicitud debido a un error de dispositivo de E/S.
No se puede realizar la operación porque la secuencia de registros se abrió con acceso de solo lectura.
Se llamó al método después de eliminar la secuencia.
No hay memoria suficiente para continuar con la ejecución del programa.
La secuencia de registros está llena.
El sistema operativo deniega el acceso a la secuencia de registro especificada.
Ejemplos
En el ejemplo siguiente se muestra cómo usar este método para anexar un registro de registro a la secuencia.
// 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)
Comentarios
Los datos contenidos en el data parámetro se concatenan en una sola matriz de bytes para anexarse como registro. Sin embargo, no se realiza ninguna disposición para dividir los datos en segmentos de matriz cuando se lee el registro.
Normalmente, este método se completa antes de que se haya escrito el registro. Para asegurarse de que se ha escrito un registro, especifique la ForceFlush marca mediante el recordAppendOptions parámetro o llame al Flush método .
Se aplica a
Append(IList<ArraySegment<Byte>>, SequenceNumber, SequenceNumber, RecordAppendOptions)
Anexa un registro de registro a .IRecordSequence Este método no se puede heredar.
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>>
Lista de segmentos de matriz de bytes que se concatenarán y anexarán como registro.
- userRecord
- SequenceNumber
Número de secuencia del siguiente registro en el orden especificado por el usuario.
- previousRecord
- SequenceNumber
Número de secuencia del siguiente registro en orden anterior.
- recordAppendOptions
- RecordAppendOptions
Valor válido de RecordAppendOptions que especifica cómo se deben escribir los datos.
Devoluciones
Número de secuencia del registro anexado.
Implementaciones
Excepciones
userRecord o previousRecord no es válido para esta secuencia.
O bien
data no se puede anexar porque es mayor que el tamaño máximo del registro.
O bien
reservations esta secuencia de registros no la creó.
Uno o varios de los argumentos son null.
userRecord o previousRecord no está entre la base y los últimos números de secuencia de esta secuencia.
No se pudo realizar la solicitud debido a una excepción de E/S inesperada.
O bien
No se pudo realizar la solicitud debido a un error de dispositivo de E/S.
No se puede realizar la operación porque la secuencia de registros se abrió con acceso de solo lectura.
Se llamó al método después de eliminar la secuencia.
No hay memoria suficiente para continuar con la ejecución del programa.
La secuencia de registros está llena.
El sistema operativo deniega el acceso a la secuencia de registro especificada.
Comentarios
Los datos contenidos en el data parámetro se concatenan en una sola matriz de bytes para anexarse como registro. Sin embargo, no se realiza ninguna disposición para dividir los datos en segmentos de matriz cuando se lee el registro.
Normalmente, este método se completa antes de que se haya escrito el registro. Para asegurarse de que se ha escrito un registro, especifique la ForceFlush marca mediante el recordAppendOptions parámetro o llame al Flush método .