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 záznamu IRecordSequence.
Přetížení
| Name | Description |
|---|---|
| Append(ArraySegment<Byte>, SequenceNumber, SequenceNumber, RecordAppendOptions, ReservationCollection) |
Připojí záznam protokolu k záznamu IRecordSequence, pomocí mezery dříve rezervované v sekvenci. Tuto metodu nelze zdědit. |
| Append(IList<ArraySegment<Byte>>, SequenceNumber, SequenceNumber, RecordAppendOptions, ReservationCollection) |
Připojí záznam protokolu k záznamu IRecordSequence, pomocí mezery dříve rezervované v sekvenci. Tuto metodu nelze zdědit. |
| Append(ArraySegment<Byte>, SequenceNumber, SequenceNumber, RecordAppendOptions) |
Zapíše záznam protokolu do záznamu LogRecordSequence. Tuto metodu nelze zdědit. |
| Append(IList<ArraySegment<Byte>>, SequenceNumber, SequenceNumber, RecordAppendOptions) |
Připojí záznam protokolu k objektu IRecordSequence. Tuto metodu nelze zdě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 záznamu IRecordSequence, pomocí mezery dříve rezervované v sekvenci. Tuto metodu nelze zdě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, která určuje způsob zápisu RecordAppendOptions dat.
- reservations
- ReservationCollection
A ReservationCollection obsahující rezervaci, která by se měla pro tento záznam použít.
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ů jsou 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í operace.
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.
Rezervace není dostatečně velká, aby se vešla data do reservationsumístění .
Poznámky
Data obsažená v parametru data se zřetězí do jednoho bajtového pole pro připojení jako záznam. Při čtení záznamu však není provedeno žádné zřizování pro rozdělení dat zpět do segmentů pole.
Připojený záznam spotřebuje 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 z kolekce odebere.
Za normálních okolností se tato metoda dokončí před zápisem záznamu. Pokud chcete zajistit, aby byl záznam zapsán, 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 záznamu IRecordSequence, pomocí mezery dříve rezervované v sekvenci. Tuto metodu nelze zdě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, která určuje způsob zápisu RecordAppendOptions dat.
- reservations
- ReservationCollection
A ReservationCollection obsahující rezervaci, která by se měla pro tento záznam použít.
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ů jsou 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í operace.
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.
Rezervace není dostatečně velká, aby se vešla data do reservationsumístění .
Poznámky
Data obsažená v parametru data se zřetězí do jednoho bajtového pole pro připojení jako záznam. Při čtení záznamu však není provedeno žádné zřizování pro rozdělení dat zpět do segmentů pole.
Připojený záznam spotřebuje 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 z kolekce odebere.
Za normálních okolností se tato metoda dokončí před zápisem záznamu. Pokud chcete zajistit, aby byl záznam zapsán, 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 záznamu LogRecordSequence. Tuto metodu nelze zdě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, která určuje způsob zápisu RecordAppendOptions 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 touto sekvencí záznamů.
Jeden nebo více argumentů jsou 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í operace.
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 tuto metodu použít k připojení záznamu protokolu do sekvence.
// 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 se zřetězí do jednoho bajtového pole pro připojení jako záznam. Při čtení záznamu však není provedeno žádné zřizování pro rozdělení dat zpět do segmentů pole.
Za normálních okolností se tato metoda dokončí před zápisem záznamu. Pokud chcete zajistit, aby byl záznam zapsán, zadejte ForceFlush příznak pomocí parametru recordAppendOptions nebo volejte metodu Flush .
Platí pro
Append(IList<ArraySegment<Byte>>, SequenceNumber, SequenceNumber, RecordAppendOptions)
Připojí záznam protokolu k objektu IRecordSequence. Tuto metodu nelze zdě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, která určuje způsob zápisu RecordAppendOptions 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 touto sekvencí záznamů.
Jeden nebo více argumentů jsou 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í operace.
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.
Poznámky
Data obsažená v parametru data se zřetězí do jednoho bajtového pole pro připojení jako záznam. Při čtení záznamu však není provedeno žádné zřizování pro rozdělení dat zpět do segmentů pole.
Za normálních okolností se tato metoda dokončí před zápisem záznamu. Pokud chcete zajistit, aby byl záznam zapsán, zadejte ForceFlush příznak pomocí parametru recordAppendOptions nebo volejte metodu Flush .