MessageBuffer.WriteMessage(Stream) Méthode
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
Écrit le contenu entier de cette mémoire tampon dans le flux de données d'E/S spécifié.
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)
Paramètres
- stream
- Stream
Flux de données d'E/S dans lequel est écrit le contenu entier de cette mémoire tampon.
Exemples
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;
}
Remarques
Cette fonction utilise un encodeur binaire au lieu d'un encodeur UTF-8. Par conséquent, il n'est pas possible de convertir directement MessageBuffer en Message. Le code illustré dans la section d'exemple indique comment résoudre ce problème.