MessageBuffer クラス


後で使用するためにメッセージ全体を格納しているメモリ バッファーを表します。Represents a memory buffer that stores an entire message for future consumption.

public ref class MessageBuffer abstract : IDisposable
public ref class MessageBuffer abstract : IDisposable, System::Xml::XPath::IXPathNavigable
public abstract class MessageBuffer : IDisposable
public abstract class MessageBuffer : IDisposable, System.Xml.XPath.IXPathNavigable
type MessageBuffer = class
    interface IDisposable
type MessageBuffer = class
    interface IXPathNavigable
    interface IDisposable
Public MustInherit Class MessageBuffer
Implements IDisposable
Public MustInherit Class MessageBuffer
Implements IDisposable, IXPathNavigable


Message インスタンスの本文は消費されるか、または 1 回だけ書き込まれます。The body of a Message instance can only be consumed or written once. Message インスタンスを複数回にわたって消費する場合は、MessageBuffer インスタンス全体を完全にメモリに保存するために Message クラスを使用する必要があります。If you wish to consume a Message instance more than once, you should use the MessageBuffer class to completely store an entire Message instance into memory.

MessageBuffer インスタンスは、CreateBufferedCopy インスタンスの Message を呼び出すことにより構築されます。A MessageBuffer instance is constructed by calling CreateBufferedCopy of a Message instance. 次に、新しい MessageBuffer が作成されて返されます。これは、Message の所有権を引き継ぎ、その内容全体をメモリ内に読み取ります。A new MessageBuffer is then created and returned, which assumes ownership of the Message and reads the entire content into memory.

Message から MessageBuffer のコピーを取得するには、CreateMessageMessageBuffer メソッドを呼び出す必要があります。In order to retrieve a copy of a Message from the MessageBuffer, you must call the CreateMessage method of the MessageBuffer. これにより、指定した元の Message インスタンスの完全なコピーが返されます。This returns an identical copy of the original Message instance you provided.

BufferSize を目的の最大バイト数に設定することにより、バッファーの最大サイズを制御できます。You can control the maximum size of the buffer by setting BufferSize to the maximum number of bytes desired. この数は、バッファーの構築に関連する一時的な割り当て、またはメッセージに関連付けられたプロパティには必ずしも適用されません。This number does not necessarily cover any transient allocations related to building the buffer, or properties attached to the message.

操作が完了したら常に、MessageBuffer を呼び出すことにより Close インスタンスを閉じる必要があります。You should always close a MessageBuffer instance by calling Close when finished working with it. これにより、システム リソースを迅速に解放できる可能性があります。This allows system resources to potentially be freed sooner.

このクラスから派生するマネージド C++ ユーザーに対する特別な注意 :Special note for Managed C++ users deriving from this class:

  • クリーンアップ コードは、デストラクターではなく (On)(Begin)Close (または OnAbort のどちらか一方または両方) に置いてください。Put your cleanup code in (On)(Begin)Close (and/or OnAbort), not in a destructor.

  • デストラクターは使用しないでください。使用すると、コンパイラが IDisposable を自動生成します。Avoid destructors: they cause the compiler to auto-generate IDisposable

  • 非参照メンバーを使用しないでください。使用すると、コンパイラが IDisposable を自動生成します。Avoid non-reference members: they can cause the compiler to auto-generate IDisposable

  • ファイナライザーを使用しないでください。使用する場合は、ビルド警告を抑制し、SuppressFinalize(Object) を呼び出し、ファイナライザー自体を (On)(Begin)Close (または OnAbort のどちらか一方または両方) から呼び出して、自動生成される IDisposable の動作をエミュレートする必要があります。Avoid finalizers; but if you include one, you should suppress the build warning and call SuppressFinalize(Object) and the finalizer itself from (On)(Begin)Close (and/or OnAbort) in order to emulate what would have been the auto-generated IDisposable behavior.



MessageBuffer クラスの新しいインスタンスを初期化します。Initializes a new instance of the MessageBuffer class.



この MessageBuffer が使用する概算のバイト数を取得します。Gets the approximate number of bytes consumed by this MessageBuffer.


このバッファーに保存されたメッセージの内容の種類を取得します。Gets the type of message content stored in this buffer.



バッファーの使用を終了します。Finishes working with the buffer.


元のメッセージのコピーを返します。Returns a copy of the original message.


このオブジェクト内を移動するための、新しい XPathNavigator オブジェクトを作成します。Creates a new XPathNavigator object for navigating this object. このメソッドは継承できません。This method cannot be inherited.


このオブジェクト内を移動するための新しい XPathNavigator オブジェクトを作成し、ナビゲーターを指定したノードに配置します。Creates a new XPathNavigator object for navigating this object, with the navigator positioned on the node specified.

CreateNavigator(Int32, XmlSpace)

このオブジェクト内を移動するための新しい XPathNavigator オブジェクトを作成し、ナビゲーターを指定したノードと xml:space スコープに配置します。Creates a new XPathNavigator object for navigating this object, with the navigator positioned on the specified node and xml:space scope.


XPathNavigator スコープを指定して、このオブジェクト内を移動するための新しい xml:space オブジェクトを作成します。Creates a new XPathNavigator object for navigating this object, with the specified xml:space scope.


指定されたオブジェクトが現在のオブジェクトと等しいかどうかを判断します。Determines whether the specified object is equal to the current object.

(継承元 Object)

既定のハッシュ関数として機能します。Serves as the default hash function.

(継承元 Object)

現在のインスタンスの Type を取得します。Gets the Type of the current instance.

(継承元 Object)

現在の Object の簡易コピーを作成します。Creates a shallow copy of the current Object.

(継承元 Object)

現在のオブジェクトを表す文字列を返します。Returns a string that represents the current object.

(継承元 Object)

このバッファーの内容全体を指定した IO ストリームに書き込みます。Writes the entire content of this buffer to the specified IO stream.



MessageBuffer によって使用されているアンマネージド リソースを解放し、オプションでマネージド リソースも解放します。Releases the unmanaged resources used by the MessageBuffer and optionally releases the managed resources. このメソッドは継承できません。This method cannot be inherited.