BodyWriter Class
Represents the writer of the message body.
Assembly: System.ServiceModel (in System.ServiceModel.dll)
System.ServiceModel.Channels.BodyWriter
System.ServiceModel.Channels.StreamBodyWriter
System.ServiceModel.Security.WSTrustRequestBodyWriter
System.ServiceModel.Security.WSTrustResponseBodyWriter
| Name | Description | |
|---|---|---|
![]() | BodyWriter(Boolean) | Initializes a new instance of the BodyWriter class that explicitly indicates whether to buffer. |
| Name | Description | |
|---|---|---|
![]() | IsBuffered | Gets a value that indicates whether the write method can be called multiple times. |
| Name | Description | |
|---|---|---|
![]() | BeginWriteBodyContents(XmlDictionaryWriter, AsyncCallback, Object) | Starts to write body contents for the body writer with specified writer, callback and state. |
![]() | CreateBufferedCopy(Int32) | Creates a buffered copy of the body. |
![]() | EndWriteBodyContents(IAsyncResult) | Ends the writing of body contents. |
![]() | Equals(Object) | Determines whether the specified object is equal to the current object.(Inherited from Object.) |
![]() | Finalize() | Allows an object to try to free resources and perform other cleanup operations before it is reclaimed by garbage collection.(Inherited from Object.) |
![]() | GetHashCode() | Serves as the default hash function. (Inherited from Object.) |
![]() | GetType() | |
![]() | MemberwiseClone() | |
![]() | OnBeginWriteBodyContents(XmlDictionaryWriter, AsyncCallback, Object) | Raises an event when the body writer starts to write body contents with specified writer, callback and state. |
![]() | OnCreateBufferedCopy(Int32) | Provides an extensibility point when the body contents are written. |
![]() | OnEndWriteBodyContents(IAsyncResult) | Raises an event when the body writer ends writing body contents. |
![]() | OnWriteBodyContents(XmlDictionaryWriter) | When implemented, provides an extensibility point when the body contents are written. |
![]() | ToString() | Returns a string that represents the current object.(Inherited from Object.) |
![]() | WriteBodyContents(XmlDictionaryWriter) | Writes out the contents of the message body. |
A message consists of headers and a body. The headers are buffered and the body is streamed. Because the body is streamed, the user cannot pass the actual content of the body to a message. Instead the user must pass a class that knows how to write the body when asked to do so. This is done by passing a class derived from BodyWriter to the Message. A message calls the class derived from BodyWriter whenever it requires the body to be written using an XmlWriter.
The following example shows how to derive a class from BodyWriter. This override takes in an array of strings and writes them to a XmlDictionaryWriter.
Imports System Imports System.Text Imports System.ServiceModel Imports System.ServiceModel.Channels Imports System.Xml Namespace UEBodyWriter Friend Class MyBodyWriter Inherits BodyWriter Private Const textTag As String = "text" Private bodySegment() As String Public Sub New(ByVal strData() As String) MyBase.New(True) Dim length = strData.Length Me.bodySegment = New String(length - 1){} For i = 0 To length - 1 Me.bodySegment(i) = strData(i) Next i End Sub Protected Overrides Sub OnWriteBodyContents(ByVal writer As XmlDictionaryWriter) writer.WriteStartElement(textTag) For Each str As String In bodySegment writer.WriteString(str) Next str writer.WriteEndElement() End Sub End Class Module Module1 Sub Main(ByVal args() As String) Dim strings() As String = {"Hello", "world"} Dim bw As New MyBodyWriter(strings) Dim strBuilder As New StringBuilder(10) Dim writer = XmlWriter.Create(strBuilder) Dim dictionaryWriter = XmlDictionaryWriter.CreateDictionaryWriter(writer) bw.WriteBodyContents(dictionaryWriter) dictionaryWriter.Flush() End Sub End Module End Namespace
Available since 8
.NET Framework
Available since 3.0
Portable Class Library
Supported in: portable .NET platforms
Silverlight
Available since 2.0
Windows Phone Silverlight
Available since 7.0
Any public static ( Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.


