Ответ 1
XmlWriter
- абстрактный класс, из которого XmlDictionaryWriter
является одним из классов, который наследует от него и сам является абстрактным классом.
Я принимаю удар в темноте, который вы хотите использовать с DataContractSerializer
или с де-сериализацией в целом. XmlDictionaryWriter
- это базовый класс, используемый WCF для выполнения де-сериализации.
Из этого я бы сделал вывод, что в 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();
}