XMLWriter与XMLDictionaryWriter

时间:2010-08-30 20:49:26

标签: .net xml-serialization xmlwriter

XMLWriterXMLDictionaryWriter之间有什么区别?在哪些情况下每个人都经常使用?

2 个答案:

答案 0 :(得分:18)

XmlWriter是一个抽象类,其中XmlDictionaryWriter是从它继承的类之一,它本身就是一个抽象类。

我正在黑暗中尝试使用DataContractSerializer或de /序列化。 XmlDictionaryWriter是WCF用于执行de / serialization的基类。

由此我推断,XmlDictionaryWriter中必须进行一些性能调整,以使其在WCF de / serialization任务中更具性能。事实上,如果您拨打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();
}

答案 1 :(得分:7)

XmlWriter是一个抽象类,用于以仅向前的方式编写XML文档。您可以使用静态Create方法创建类的具体实现以供使用。当您需要为任何用途快速创建任意XML时,这种创建XML文档的方法很有用。

XmlDictionaryWriter是一个抽象类,用于对象与XML之间的序列化和反序列化。据我所知,它在WCF中用于​​序列化对象以便在线路上移动。 XmlDictionaryWriter可以使用二进制,文本或MTOM格式进行序列化。如果您特别需要自定义(反)序列化以便在WCF上使用,我希望您只使用此类。另见here

希望有所帮助。