MessageBuffer.WriteMessage(Stream) Metodo
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Scrive l'intero contenuto di questo buffer nel flusso di I/O specificato.
public:
virtual void WriteMessage(System::IO::Stream ^ stream);
public virtual void WriteMessage(System.IO.Stream stream);
abstract member WriteMessage : System.IO.Stream -> unit
override this.WriteMessage : System.IO.Stream -> unit
Public Overridable Sub WriteMessage (stream As Stream)
Parametri
- stream
- Stream
Flusso di I/O in cui viene scritto l'intero contenuto di questo buffer.
Esempio
private byte[] ConvertMessageToByteArray(ref Message message)
{
// Memory stream that contains the message.
var stream = new MemoryStream();
// Create an XmlWriter to serialize the message into a byte array.
var settings = new XmlWriterSettings();
settings.Encoding = System.Text.Encoding.UTF8;
XmlWriter writer = XmlWriter.Create(stream, settings);
// Copy the message into a buffer.
// Note: This call changes the original message's state.
MessageBuffer buffer = message.CreateBufferedCopy(int.MaxValue);
// Create a copy of the message.
message = buffer.CreateMessage();
// Serialize the message to the XmlWriter.
message.WriteMessage(writer);
// Recreate the message.
message = buffer.CreateMessage();
// Flush the contents of the writer so that the stream gets updated.
writer.Flush();
stream.Flush();
// Convert the stream to an array.
byte[] retval = stream.ToArray();
return retval;
}
Commenti
Questa funzione usa un codificatore binario anziché un codificatore UTF-8. Pertanto, non è possibile convertire direttamente da un MessageBuffer oggetto a un oggetto Message. Il codice nella sezione di esempio illustra come risolvere questo problema.