LogRecordSequence.Append Metoda
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Zapíše záznam protokolu do IRecordSequence.
Přetížení
Append(ArraySegment<Byte>, SequenceNumber, SequenceNumber, RecordAppendOptions, ReservationCollection) |
Připojí záznam protokolu k objektu IRecordSequences použitím mezery, které byly dříve v sekvenci vyhrazeny. Tuto metodu nelze dědit. |
Append(IList<ArraySegment<Byte>>, SequenceNumber, SequenceNumber, RecordAppendOptions, ReservationCollection) |
Připojí záznam protokolu k objektu IRecordSequences použitím mezery, které byly dříve v sekvenci vyhrazeny. Tuto metodu nelze dědit. |
Append(ArraySegment<Byte>, SequenceNumber, SequenceNumber, RecordAppendOptions) |
Zapíše záznam protokolu do .LogRecordSequence Tuto metodu nelze dědit. |
Append(IList<ArraySegment<Byte>>, SequenceNumber, SequenceNumber, RecordAppendOptions) |
Připojí záznam protokolu k objektu IRecordSequence. Tuto metodu nelze dědit. |
Příklady
Tento příklad ukazuje, jak používat člena Append .
// 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)
Připojí záznam protokolu k objektu IRecordSequences použitím mezery, které byly dříve v sekvenci vyhrazeny. Tuto metodu nelze dědit.
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
Parametry
- data
- ArraySegment<Byte>
Seznam segmentů pole bajtů, které budou zřetězeny a připojeny jako záznam.
- nextUndoRecord
- SequenceNumber
Pořadové číslo dalšího záznamu v pořadí zadaném uživatelem.
- previousRecord
- SequenceNumber
Pořadové číslo dalšího záznamu v předchozím pořadí.
- recordAppendOptions
- RecordAppendOptions
Platná hodnota určuje RecordAppendOptions , jak se mají data zapsat.
- reservations
- ReservationCollection
A ReservationCollection obsahující rezervaci, která se má použít pro tento záznam.
Návraty
Pořadové číslo připojeného záznamu protokolu.
Implementuje
Výjimky
userRecord
nebo previousRecord
není pro tuto sekvenci platný.
-nebo-
data
nelze připojit, protože je větší než maximální velikost záznamu.
-nebo-
reservations
nebyla vytvořena touto sekvencí záznamů.
Jeden nebo více argumentů je null
.
userRecord
nebo previousRecord
není mezi základním a posledním pořadovými čísly této sekvence.
Požadavek nebylo možné provést kvůli neočekávané výjimce vstupně-výstupních operací.
-nebo-
Požadavek nelze provést kvůli chybě vstupně-výstupního zařízení.
Operaci nelze provést, protože sekvence záznamů byla otevřena s přístupem jen pro čtení.
Metoda byla volána po odstranění sekvence.
Pro pokračování v provádění programu není dostatek paměti.
Posloupnost záznamů je plná.
Operační systém odepře přístup k zadané sekvenci protokolu.
Na webu se nenachází reservations
žádná rezervace dostatečně velká, aby se vešladata
.
Poznámky
Data obsažená v parametru data
budou zřetězena do jednoho bajtového pole pro připojení jako záznam. Při čtení záznamu však není provedeno žádné ustanovení pro rozdělení dat zpět do segmentů pole.
Připojený záznam bude spotřebovávat místo, které bylo dříve rezervováno, pomocí rezervace určené parametrem reservations
. Pokud připojení proběhne úspěšně, spotřebuje nejmenší oblast rezervace, která může obsahovat data, a tato oblast rezervace se odebere z kolekce.
Za normálních okolností se tato metoda dokončí před zápisem záznamu. Pokud chcete zajistit zápis záznamu, zadejte ForceFlush příznak pomocí parametru recordAppendOptions
nebo volejte metodu Flush .
Platí pro
Append(IList<ArraySegment<Byte>>, SequenceNumber, SequenceNumber, RecordAppendOptions, ReservationCollection)
Připojí záznam protokolu k objektu IRecordSequences použitím mezery, které byly dříve v sekvenci vyhrazeny. Tuto metodu nelze dědit.
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
Parametry
- data
- IList<ArraySegment<Byte>>
Seznam segmentů pole bajtů, které budou zřetězeny a připojeny jako záznam.
- userRecord
- SequenceNumber
Pořadové číslo dalšího záznamu v pořadí zadaném uživatelem.
- previousRecord
- SequenceNumber
Pořadové číslo dalšího záznamu v předchozím pořadí.
- recordAppendOptions
- RecordAppendOptions
Platná hodnota určuje RecordAppendOptions , jak se mají data zapsat.
- reservations
- ReservationCollection
A ReservationCollection obsahující rezervaci, která se má použít pro tento záznam.
Návraty
Pořadové číslo připojeného záznamu protokolu.
Implementuje
Výjimky
userRecord
nebo previousRecord
není pro tuto sekvenci platný.
-nebo-
data
nelze připojit, protože je větší než maximální velikost záznamu.
-nebo-
reservations
nebyla vytvořena touto sekvencí záznamů.
Jeden nebo více argumentů je null
.
userRecord
nebo previousRecord
není mezi základním a posledním pořadovými čísly této sekvence.
Požadavek nebylo možné provést kvůli neočekávané výjimce vstupně-výstupních operací.
-nebo-
Požadavek nelze provést kvůli chybě vstupně-výstupního zařízení.
Operaci nelze provést, protože sekvence záznamů byla otevřena s přístupem jen pro čtení.
Metoda byla volána po odstranění sekvence.
Pro pokračování v provádění programu není dostatek paměti.
Posloupnost záznamů je plná.
Operační systém odepře přístup k zadané sekvenci protokolu.
Na webu se nenachází reservations
žádná rezervace dostatečně velká, aby se vešladata
.
Poznámky
Data obsažená v parametru data
budou zřetězena do jednoho bajtového pole pro připojení jako záznam. Při čtení záznamu však není provedeno žádné ustanovení pro rozdělení dat zpět do segmentů pole.
Připojený záznam bude spotřebovávat místo, které bylo dříve rezervováno, pomocí rezervace určené parametrem reservations
. Pokud připojení proběhne úspěšně, spotřebuje nejmenší oblast rezervace, která může obsahovat data, a tato oblast rezervace se odebere z kolekce.
Za normálních okolností se tato metoda dokončí před zápisem záznamu. Pokud chcete zajistit zápis záznamu, zadejte ForceFlush příznak pomocí parametru recordAppendOptions
nebo volejte metodu Flush .
Platí pro
Append(ArraySegment<Byte>, SequenceNumber, SequenceNumber, RecordAppendOptions)
Zapíše záznam protokolu do LogRecordSequence. Tuto metodu nelze dědit.
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
Parametry
- data
- ArraySegment<Byte>
Seznam segmentů pole bajtů, které budou zřetězeny a připojeny jako záznam.
- nextUndoRecord
- SequenceNumber
Pořadové číslo dalšího záznamu v pořadí zadaném uživatelem.
- previousRecord
- SequenceNumber
Pořadové číslo dalšího záznamu v předchozím pořadí.
- recordAppendOptions
- RecordAppendOptions
Platná hodnota určuje RecordAppendOptions , jak se mají data zapsat.
Návraty
Pořadové číslo připojeného záznamu protokolu.
Implementuje
Výjimky
userRecord
nebo previousRecord
není pro tuto sekvenci platný.
-nebo-
data
nelze připojit, protože je větší než maximální velikost záznamu.
-nebo-
reservations
nebyla vytvořena touto sekvencí záznamů.
Jeden nebo více argumentů je null
.
userRecord
nebo previousRecord
není mezi základním a posledním pořadovými čísly této sekvence.
Požadavek nebylo možné provést kvůli neočekávané výjimce vstupně-výstupních operací.
-nebo-
Požadavek nelze provést kvůli chybě vstupně-výstupního zařízení.
Operaci nelze provést, protože sekvence záznamů byla otevřena s přístupem jen pro čtení.
Metoda byla volána po odstranění sekvence.
Pro pokračování v provádění programu není dostatek paměti.
Posloupnost záznamů je plná.
Operační systém odepře přístup k zadané sekvenci protokolu.
Příklady
Následující příklad ukazuje, jak použít tuto metodu k připojení záznamu protokolu k sekvenci.
// 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)
Poznámky
Data obsažená v parametru data
budou zřetězena do pole s jedním bajtem pro připojení jako záznamu. Při čtení záznamu však není provedeno žádné ustanovení pro rozdělení dat zpět na segmenty pole.
Za normálních okolností se tato metoda dokončí před zápisem záznamu. Chcete-li zajistit, aby záznam byl zapsán, zadejte ForceFlush příznak pomocí parametru recordAppendOptions
, nebo zavolejte metodu Flush .
Platí pro
Append(IList<ArraySegment<Byte>>, SequenceNumber, SequenceNumber, RecordAppendOptions)
Připojí záznam protokolu k objektu IRecordSequence. Tuto metodu nelze dědit.
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
Parametry
- data
- IList<ArraySegment<Byte>>
Seznam segmentů pole bajtů, které budou zřetězeny a připojeny jako záznam.
- userRecord
- SequenceNumber
Pořadové číslo dalšího záznamu v pořadí zadaném uživatelem.
- previousRecord
- SequenceNumber
Pořadové číslo dalšího záznamu v předchozím pořadí.
- recordAppendOptions
- RecordAppendOptions
Platná hodnota RecordAppendOptions , která určuje způsob zápisu dat.
Návraty
Pořadové číslo připojeného záznamu protokolu.
Implementuje
Výjimky
userRecord
nebo previousRecord
není pro tuto sekvenci platný.
-nebo-
data
nelze připojit, protože je větší než maximální velikost záznamu.
-nebo-
reservations
nebyla vytvořena v této sekvenci záznamů.
Jeden nebo více argumentů je null
.
userRecord
nebo previousRecord
není mezi základním a posledním pořadovými čísly této sekvence.
Požadavek nelze provést kvůli neočekávané výjimce vstupně-výstupních operací.
-nebo-
Požadavek nelze provést kvůli chybě vstupně-výstupního zařízení.
Operaci nelze provést, protože sekvence záznamů byla otevřena s přístupem jen pro čtení.
Metoda byla volána po odstranění sekvence.
K pokračování v provádění programu není dostatek paměti.
Sekvence záznamů je plná.
Operační systém odepře přístup k zadané sekvenci protokolu.
Poznámky
Data obsažená v parametru data
budou zřetězena do pole s jedním bajtem pro připojení jako záznamu. Při čtení záznamu však není provedeno žádné ustanovení pro rozdělení dat zpět na segmenty pole.
Za normálních okolností se tato metoda dokončí před zápisem záznamu. Chcete-li zajistit, aby záznam byl zapsán, zadejte ForceFlush příznak pomocí parametru recordAppendOptions
, nebo zavolejte metodu Flush .