MessageBuffer Class
Definition
Important
Some information relates to prerelease product that may be substantially modified before it’s released. Microsoft makes no warranties, express or implied, with respect to the information provided here.
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
- Inheritance
-
MessageBuffer
- Implements
Remarks
The body of a Message instance can only be consumed or written once. 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.
A MessageBuffer instance is constructed by calling CreateBufferedCopy of a Message instance. A new MessageBuffer is then created and returned, which assumes ownership of the Message and reads the entire content into memory.
In order to retrieve a copy of a Message from the MessageBuffer, you must call the CreateMessage method of the MessageBuffer. This returns an identical copy of the original Message instance you provided.
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.
You should always close a MessageBuffer instance by calling Close when finished working with it. This allows system resources to potentially be freed sooner.
Special note for Managed C++ users deriving from this class:
Put your cleanup code in (On)(Begin)Close (and/or OnAbort), not in a destructor.
Avoid destructors: they cause the compiler to auto-generate IDisposable
Avoid non-reference members: they can cause the compiler to auto-generate 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.
Constructors
MessageBuffer() |
Initializes a new instance of the MessageBuffer class. |
Properties
BufferSize |
Gets the approximate number of bytes consumed by this MessageBuffer. |
MessageContentType |
Gets the type of message content stored in this buffer. |
Methods
Close() |
Finishes working with the buffer. |
CreateMessage() |
Returns a copy of the original message. |
CreateNavigator() |
Creates a new XPathNavigator object for navigating this object. This method cannot be inherited. |
CreateNavigator(Int32, XmlSpace) |
Creates a new XPathNavigator object for navigating this object, with the navigator positioned on the specified node and |
CreateNavigator(Int32) |
Creates a new XPathNavigator object for navigating this object, with the navigator positioned on the node specified. |
CreateNavigator(XmlSpace) |
Creates a new XPathNavigator object for navigating this object, with the specified |
Equals(Object) |
Determines whether the specified object is equal to the current object. (Inherited from Object) |
GetHashCode() |
Serves as the default hash function. (Inherited from Object) |
GetType() |
Gets the Type of the current instance. (Inherited from Object) |
MemberwiseClone() |
Creates a shallow copy of the current Object. (Inherited from Object) |
ToString() |
Returns a string that represents the current object. (Inherited from Object) |
WriteMessage(Stream) |
Writes the entire content of this buffer to the specified IO stream. |
Explicit Interface Implementations
IDisposable.Dispose() |
Releases the unmanaged resources used by the MessageBuffer and optionally releases the managed resources. This method cannot be inherited. |