XMLWriter
和有什么区别XMLDictionaryWriter
?通常在哪些情况下使用每一种?
2 回答
XmlWriter
是一个抽象类,它XmlDictionaryWriter
是从它继承的类之一,它本身就是一个抽象类。
我在黑暗中刺伤你想将它与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();
}
XmlWriter是一个抽象类,用于以只进方式编写 XML 文档。您使用静态Create
方法来创建类的具体实现以供使用。当您需要为任何用途快速创建任意 XML 时,这种创建 XML 文档的方法非常有用。
XmlDictionaryWriter是一个抽象类,用于将对象与 XML 进行序列化和反序列化。据我了解,它在 WCF 中用于序列化对象以通过网络移动。XmlDictionaryWriter
可以使用二进制、文本或 MTOM 格式进行序列化。如果您特别需要自定义(反)序列化以在 WCF 上使用,我希望您只会使用此类。另请参见此处。
希望有帮助。