LogRecordSequence.Append Yöntem
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
öğesine bir günlük kaydı IRecordSequenceyazar.
Aşırı Yüklemeler
Append(ArraySegment<Byte>, SequenceNumber, SequenceNumber, RecordAppendOptions, ReservationCollection) |
Dizininde daha önce ayrılmış olan alanı kullanarak bir günlük kaydını IRecordSequenceöğesine ekler. Bu yöntem devralınamaz. |
Append(IList<ArraySegment<Byte>>, SequenceNumber, SequenceNumber, RecordAppendOptions, ReservationCollection) |
Dizininde daha önce ayrılmış olan alanı kullanarak bir günlük kaydını IRecordSequenceöğesine ekler. Bu yöntem devralınamaz. |
Append(ArraySegment<Byte>, SequenceNumber, SequenceNumber, RecordAppendOptions) |
öğesine bir günlük kaydı LogRecordSequenceyazar. Bu yöntem devralınamaz. |
Append(IList<ArraySegment<Byte>>, SequenceNumber, SequenceNumber, RecordAppendOptions) |
bir günlük kaydını öğesine IRecordSequenceekler. Bu yöntem devralınamaz. |
Örnekler
Bu örnekte üyenin nasıl kullanılacağı gösterilmektedir 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)
Dizininde daha önce ayrılmış olan alanı kullanarak bir günlük kaydını IRecordSequenceöğesine ekler. Bu yöntem devralınamaz.
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
Parametreler
- data
- ArraySegment<Byte>
Birleştirilecek ve kayıt olarak eklenecek bayt dizisi kesimlerinin listesi.
- nextUndoRecord
- SequenceNumber
Kullanıcı tarafından belirtilen sırada bir sonraki kaydın sıra numarası.
- previousRecord
- SequenceNumber
Önceki sırada bir sonraki kaydın sıra numarası.
- recordAppendOptions
- RecordAppendOptions
Verilerin nasıl yazılması gerektiğini belirten geçerli değeri RecordAppendOptions .
- reservations
- ReservationCollection
ReservationCollection Bu kayıt için kullanılması gereken rezervasyonu içeren bir.
Döndürülenler
Eklenen günlük kaydının sıra numarası.
Uygulamalar
Özel durumlar
userRecord
veya previousRecord
bu dizi için geçerli değil.
-veya-
data
en büyük kayıt boyutundan büyük olduğundan eklenemiyor.
-veya-
reservations
bu kayıt dizisi tarafından oluşturulmadı.
Bağımsız değişkenlerden biri veya daha fazlası şeklindedir null
.
userRecord
veya previousRecord
bu dizinin temel ve son sıra numaraları arasında değildir.
Beklenmeyen bir G/Ç özel durumu nedeniyle istek gerçekleştirilemedi.
-veya-
G/Ç cihazı hatası nedeniyle istek gerçekleştirilemedi.
Kayıt sırası salt okunur erişimle açıldığından işlem gerçekleştirilemiyor.
yöntemi, sıra atıldıktan sonra çağrıldı.
Programın yürütülmesine devam etmek için yeterli bellek yok.
Kayıt sırası dolu.
Belirtilen günlük dizisine erişim işletim sistemi tarafından reddedildi.
içinde sığacak data
kadar büyük rezervasyon bulunamaz reservations
.
Açıklamalar
parametresinde data
yer alan veriler, kayıt olarak eklenmek üzere tek bir bayt dizisinde birleştirilir. Ancak, kayıt okunduğunda verileri dizi kesimlerine bölmek için herhangi bir sağlama yapılmaz.
Eklenen kayıt, parametresi tarafından reservations
belirtilen bir ayırmayı kullanarak daha önce ayrılmış olan alanı kullanır. Ekleme başarılı olursa, verileri tutabilecek en küçük rezervasyon alanını kullanır ve bu rezervasyon alanı koleksiyondan kaldırılır.
Normalde, bu yöntem kayıt yazılmadan önce tamamlar. Bir kaydın yazılmasını sağlamak için parametresini ForceFlush kullanarak recordAppendOptions
bayrağını belirtin veya yöntemini çağırın Flush .
Şunlara uygulanır
Append(IList<ArraySegment<Byte>>, SequenceNumber, SequenceNumber, RecordAppendOptions, ReservationCollection)
Dizininde daha önce ayrılmış olan alanı kullanarak bir günlük kaydını IRecordSequenceöğesine ekler. Bu yöntem devralınamaz.
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
Parametreler
- data
- IList<ArraySegment<Byte>>
Birleştirilecek ve kayıt olarak eklenecek bayt dizisi kesimlerinin listesi.
- userRecord
- SequenceNumber
Kullanıcı tarafından belirtilen sırada bir sonraki kaydın sıra numarası.
- previousRecord
- SequenceNumber
Önceki sırada bir sonraki kaydın sıra numarası.
- recordAppendOptions
- RecordAppendOptions
Verilerin nasıl yazılması gerektiğini belirten geçerli değeri RecordAppendOptions .
- reservations
- ReservationCollection
ReservationCollection Bu kayıt için kullanılması gereken rezervasyonu içeren bir.
Döndürülenler
Eklenen günlük kaydının sıra numarası.
Uygulamalar
Özel durumlar
userRecord
veya previousRecord
bu dizi için geçerli değil.
-veya-
data
en büyük kayıt boyutundan büyük olduğundan eklenemiyor.
-veya-
reservations
bu kayıt dizisi tarafından oluşturulmadı.
Bağımsız değişkenlerden biri veya daha fazlası şeklindedir null
.
userRecord
veya previousRecord
bu dizinin temel ve son sıra numaraları arasında değildir.
Beklenmeyen bir G/Ç özel durumu nedeniyle istek gerçekleştirilemedi.
-veya-
G/Ç cihazı hatası nedeniyle istek gerçekleştirilemedi.
Kayıt sırası salt okunur erişimle açıldığından işlem gerçekleştirilemiyor.
yöntemi, sıra atıldıktan sonra çağrıldı.
Programın yürütülmesine devam etmek için yeterli bellek yok.
Kayıt sırası dolu.
Belirtilen günlük dizisine erişim işletim sistemi tarafından reddedildi.
içinde sığacak data
kadar büyük rezervasyon bulunamaz reservations
.
Açıklamalar
parametresinde data
yer alan veriler, kayıt olarak eklenmek üzere tek bir bayt dizisinde birleştirilir. Ancak, kayıt okunduğunda verileri dizi kesimlerine bölmek için herhangi bir sağlama yapılmaz.
Eklenen kayıt, parametresi tarafından reservations
belirtilen bir ayırmayı kullanarak daha önce ayrılmış olan alanı kullanır. Ekleme başarılı olursa, verileri tutabilecek en küçük rezervasyon alanını kullanır ve bu rezervasyon alanı koleksiyondan kaldırılır.
Normalde, bu yöntem kayıt yazılmadan önce tamamlar. Bir kaydın yazılmasını sağlamak için parametresini ForceFlush kullanarak recordAppendOptions
bayrağını belirtin veya yöntemini çağırın Flush .
Şunlara uygulanır
Append(ArraySegment<Byte>, SequenceNumber, SequenceNumber, RecordAppendOptions)
öğesine bir günlük kaydı LogRecordSequenceyazar. Bu yöntem devralınamaz.
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
Parametreler
- data
- ArraySegment<Byte>
Birleştirilecek ve kayıt olarak eklenecek bayt dizisi kesimlerinin listesi.
- nextUndoRecord
- SequenceNumber
Kullanıcı tarafından belirtilen sırada bir sonraki kaydın sıra numarası.
- previousRecord
- SequenceNumber
Önceki sırada bir sonraki kaydın sıra numarası.
- recordAppendOptions
- RecordAppendOptions
Verilerin nasıl yazılması gerektiğini belirten geçerli değeri RecordAppendOptions .
Döndürülenler
Eklenen günlük kaydının sıra numarası.
Uygulamalar
Özel durumlar
userRecord
veya previousRecord
bu dizi için geçerli değil.
-veya-
data
en büyük kayıt boyutundan büyük olduğundan eklenemiyor.
-veya-
reservations
bu kayıt dizisi tarafından oluşturulmadı.
Bağımsız değişkenlerden biri veya daha fazlası şeklindedir null
.
userRecord
veya previousRecord
bu dizinin temel ve son sıra numaraları arasında değildir.
Beklenmeyen bir G/Ç özel durumu nedeniyle istek gerçekleştirilemedi.
-veya-
G/Ç cihazı hatası nedeniyle istek gerçekleştirilemedi.
Kayıt sırası salt okunur erişimle açıldığından işlem gerçekleştirilemiyor.
yöntemi, sıra atıldıktan sonra çağrıldı.
Programın yürütülmesine devam etmek için yeterli bellek yok.
Kayıt sırası dolu.
Belirtilen günlük dizisine erişim işletim sistemi tarafından reddedildi.
Örnekler
Aşağıdaki örnekte, bu yöntemin diziye bir günlük kaydı eklemek için nasıl kullanılacağı gösterilmektedir.
// 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)
Açıklamalar
parametresinde data
yer alan veriler, kayıt olarak eklenmek üzere tek bir bayt dizisinde birleştirilir. Ancak, kayıt okunduğunda verileri dizi kesimlerine bölmek için herhangi bir sağlama yapılmaz.
Normalde, bu yöntem kayıt yazılmadan önce tamamlar. Bir kaydın yazılmasını sağlamak için parametresini ForceFlush kullanarak recordAppendOptions
bayrağını belirtin veya yöntemini çağırın Flush .
Şunlara uygulanır
Append(IList<ArraySegment<Byte>>, SequenceNumber, SequenceNumber, RecordAppendOptions)
bir günlük kaydını öğesine IRecordSequenceekler. Bu yöntem devralınamaz.
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
Parametreler
- data
- IList<ArraySegment<Byte>>
Birleştirilecek ve kayıt olarak eklenecek bayt dizisi kesimlerinin listesi.
- userRecord
- SequenceNumber
Kullanıcı tarafından belirtilen sırada bir sonraki kaydın sıra numarası.
- previousRecord
- SequenceNumber
Önceki sırada bir sonraki kaydın sıra numarası.
- recordAppendOptions
- RecordAppendOptions
Verilerin nasıl yazılması gerektiğini belirten geçerli değeri RecordAppendOptions .
Döndürülenler
Eklenen günlük kaydının sıra numarası.
Uygulamalar
Özel durumlar
userRecord
veya previousRecord
bu dizi için geçerli değil.
-veya-
data
en büyük kayıt boyutundan büyük olduğundan eklenemiyor.
-veya-
reservations
bu kayıt dizisi tarafından oluşturulmadı.
Bağımsız değişkenlerden biri veya daha fazlası şeklindedir null
.
userRecord
veya previousRecord
bu dizinin temel ve son sıra numaraları arasında değildir.
Beklenmeyen bir G/Ç özel durumu nedeniyle istek gerçekleştirilemedi.
-veya-
G/Ç cihazı hatası nedeniyle istek gerçekleştirilemedi.
Kayıt sırası salt okunur erişimle açıldığından işlem gerçekleştirilemiyor.
yöntemi, sıra atıldıktan sonra çağrıldı.
Programın yürütülmesine devam etmek için yeterli bellek yok.
Kayıt sırası dolu.
Belirtilen günlük dizisine erişim işletim sistemi tarafından reddedildi.
Açıklamalar
parametresinde data
yer alan veriler, kayıt olarak eklenmek üzere tek bir bayt dizisinde birleştirilir. Ancak, kayıt okunduğunda verileri dizi kesimlerine bölmek için herhangi bir sağlama yapılmaz.
Normalde, bu yöntem kayıt yazılmadan önce tamamlar. Bir kaydın yazılmasını sağlamak için parametresini ForceFlush kullanarak recordAppendOptions
bayrağını belirtin veya yöntemini çağırın Flush .