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();
}