BodyWriter クラス
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
メッセージ本文のライターを表します。
public ref class BodyWriter abstract
public abstract class BodyWriter
type BodyWriter = class
Public MustInherit Class BodyWriter
- 継承
-
BodyWriter
- 派生
例
次の例では、BodyWriter からクラスを派生させる方法を示します。 このオーバーライドでは、文字列の配列が受け取られ、それが XmlDictionaryWriter に書き込まれます。
using System;
using System.Text;
using System.ServiceModel;
using System.ServiceModel.Channels;
using System.Xml;
namespace UEBodyWriter
{
class MyBodyWriter : BodyWriter
{
const string textTag = "text";
string[] bodySegment;
public MyBodyWriter(string[] strData) : base(true)
{
int length = strData.Length;
this.bodySegment = new string[length];
for (int i = 0; i < length; i++)
{
this.bodySegment[i] = strData[i];
}
}
protected override void OnWriteBodyContents(XmlDictionaryWriter writer)
{
writer.WriteStartElement(textTag);
foreach (string str in bodySegment)
{
writer.WriteString(str);
}
writer.WriteEndElement();
}
}
class Program
{
static void Main(string[] args)
{
string[] strings = {"Hello", "world"};
MyBodyWriter bw = new MyBodyWriter(strings);
StringBuilder strBuilder = new StringBuilder(10);
XmlWriter writer = XmlWriter.Create(strBuilder);
XmlDictionaryWriter dictionaryWriter = XmlDictionaryWriter.CreateDictionaryWriter(writer);
bw.WriteBodyContents(dictionaryWriter);
dictionaryWriter.Flush();
}
}
}
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
注釈
メッセージは、ヘッダーと本文で構成されます。 ヘッダーはバッファーされ、本文はストリーミングされます。 本文はストリーミングされるので、ユーザーは本文の実際の内容をメッセージに渡すことはできません。 代わりに、本文の書き込み方法を知っているクラスを渡す必要があります。 そのためには、BodyWriter から派生したクラスを Message に渡します。 メッセージは、BodyWriter を使用した本文の書き込みを要求するときは常に、XmlWriter から派生したクラスを呼び出します。
コンストラクター
BodyWriter(Boolean) |
バッファーを行うかどうかを明示的に示す BodyWriter クラスの新しいインスタンスを初期化します。 |
プロパティ
IsBuffered |
書き込みメソッドを複数回呼び出すことができるかどうかを示す値を取得します。 |
メソッド
BeginWriteBodyContents(XmlDictionaryWriter, AsyncCallback, Object) |
指定されたライター、コールバックおよび状態で、本文ライターの本文のコンテンツ書き込みを開始します。 |
CreateBufferedCopy(Int32) |
本文のバッファーされたコピーを作成します。 |
EndWriteBodyContents(IAsyncResult) |
本文の内容の書き込みを終了します。 |
Equals(Object) |
指定されたオブジェクトが現在のオブジェクトと等しいかどうかを判断します。 (継承元 Object) |
GetHashCode() |
既定のハッシュ関数として機能します。 (継承元 Object) |
GetType() |
現在のインスタンスの Type を取得します。 (継承元 Object) |
MemberwiseClone() |
現在の Object の簡易コピーを作成します。 (継承元 Object) |
OnBeginWriteBodyContents(XmlDictionaryWriter, AsyncCallback, Object) |
本文ライターが、指定されたライター、コールバックおよび状態で本文のコンテンツの作成を開始するときイベントを発生させます。 |
OnCreateBufferedCopy(Int32) |
本文の内容を書き込むときの機能拡張ポイントを提供します。 |
OnEndWriteBodyContents(IAsyncResult) |
本文ライターが本文の内容の書き込みを終了するときイベントを発生させます。 |
OnWriteBodyContents(XmlDictionaryWriter) |
実装すると、本文の内容を書き込むときの機能拡張ポイントを提供します。 |
OnWriteBodyContentsAsync(XmlDictionaryWriter) |
メッセージ本文のライターを表します。 |
ToString() |
現在のオブジェクトを表す文字列を返します。 (継承元 Object) |
WriteBodyContents(XmlDictionaryWriter) |
メッセージ本文の内容を書き出します。 |
適用対象
.NET