MessageBuffer.Close 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.
Arabellekle çalışmayı tamamlar.
public:
abstract void Close();
public abstract void Close ();
abstract member Close : unit -> unit
Public MustOverride Sub Close ()
Örnekler
Aşağıdaki örnekte, bir ileti arabelleğinin düzgün bir şekilde nasıl kapatılma adımları gösterilmektedir.
public void AfterReceiveReply(ref Message reply, object correlationState)
{
// Create the buffer.
MessageBuffer buffer = reply.CreateBufferedCopy(13000);
// Inspect the response (for example, extract the body contents).
Message thisReply = buffer.CreateMessage();
XmlDictionaryReader reader = thisReply.GetReaderAtBodyContents();
var info = new StringBuilder();
XmlWriter writer = XmlWriter.Create(info);
writer.WriteNode(reader, true);
writer.Close();
// Resolution: Re-create the message from the buffer before
// closing.
reply = buffer.CreateMessage();
// You can close the buffer after the message has been recreated.
buffer.Close();
}
Açıklamalar
Bir örneği çalışmayı bitirdiğinizde her zaman çağırarak Close kapatmalısınızMessageBuffer. Bu, sistem kaynaklarının daha erken boşaltılmasını sağlar.
bir iletinin ileti arabelleği oluşturmak için çağrısında CreateBufferedCopy bulunduysanız ve kullanarak CreateMessageiletiyi incelediyseniz, bu yöntemi kullanarak arabelleği kapatmayı denediğinizde bir InvalidOperationException alırsınız. Bu sorunu önlemek için kapatmadan önce arabellekten iletiyi yeniden oluşturmanız gerekir. Önceki senaryonun bir gösterimi ve bu sorunu çözmenin bir yolu için Örnek bölümündeki kod örneğine bakın.