16

XMLWriterとはどう違いXMLDictionaryWriterますか?それぞれが一般的にどのような場合に使用されますか?

4

2 に答える 2

18

XmlWriterは、XmlDictionaryWriterそれを継承するクラスの 1 つであり、それ自体が抽象クラスである抽象クラスです。

DataContractSerializer私は、一般的に、または逆シリアル化で使用したいという暗闇の中で突き刺しています。これXmlDictionaryWriterは、デシリアライゼーションを行うために WCF によって使用される基本クラスです。

XmlDictionaryWriterそのことから、WCF のデシリアライゼーション タスクでパフォーマンスを向上させるには、パフォーマンス チューニングが必要であると推測できます。実際、またはメソッドのWriteObject(Stream, object)代わりにを呼び出すと、 が作成されますWriteObject(XmlWriter, object)WriteObject(XmlDictionaryWriter, object)XmlDictionaryWriter

public virtual void WriteObject(Stream stream, object graph)
{
    CheckNull(stream, "stream");
    XmlDictionaryWriter writer = XmlDictionaryWriter.CreateTextWriter(stream, Encoding.UTF8, false);
    this.WriteObject(writer, graph);
    writer.Flush();
}
于 2010-09-22T15:47:09.803 に答える
7

XmlWriterは、順方向のみの方法でXMLドキュメントを書き込むために使用される抽象クラスです。静的Createメソッドを使用して、使用するクラスの具体的な実装を作成します。XMLドキュメントを作成するこの方法は、あらゆる用途で任意のXMLをすばやく作成する必要がある場合に役立ちます。

XmlDictionaryWriterは、XMLとの間のオブジェクトのシリアル化および逆シリアル化に使用される抽象クラスです。私が理解していることから、これはWCFで、ワイヤを移動するためにオブジェクトをシリアル化するために使用されます。XmlDictionaryWriterバイナリ、テキスト、またはMTOM形式を使用してシリアル化できます。このクラスは、WCFで使用するためにカスタム(逆)シリアル化が特に必要な場合にのみ使用すると思います。こちらもご覧ください

お役に立てば幸いです。

于 2010-09-22T15:43:01.713 に答える