XMLWriter
和XMLDictionaryWriter
之间有什么区别?在哪些情况下每个人都经常使用?
答案 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。
希望有所帮助。