2010-08-30 11 views
16

¿Cuál es la diferencia entre XMLWriter y XMLDictionaryWriter? ¿En qué casos se usa generalmente cada uno?XMLWriter vs XMLDictionaryWriter

+3

me gusta la descripción de XMLDictionaryWriter en MSDN:. * Una clase abstracta que los deriva de hacer la serialización y deserialización * –

Respuesta

18

XmlWriter es una clase abstracta de las cuales XmlDictionaryWriter es una de las clases que se hereda de ella y es en sí misma una clase abstracta.

Estoy tomando una puñalada en la oscuridad que desea utilizar con el DataContractSerializer o con de/serialización en general. El XmlDictionaryWriter es la clase base utilizada por WCF para hacer su de/serialización.

De ahí deduciría que debe haber un ajuste de rendimiento en el XmlDictionaryWriter para hacerlo más eficiente con las tareas de de/serialización de WCF. De hecho, si se llama a la WriteObject(Stream, object) en lugar de WriteObject(XmlWriter, object) o WriteObject(XmlDictionaryWriter, object) métodos se creará un XmlDictionaryWriter para usted

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

XmlWriter es una clase abstracta se utiliza para la escritura de documentos XML de una manera sólo avance. Utiliza el método estático Create para crear implementaciones concretas de la clase para su uso. Este método de creación de documentos XML es útil cuando necesita crear rápidamente XML arbitrario para cualquier uso.

XmlDictionaryWriter es una clase abstracta se utiliza para la serialización y deserialización de objetos hacia y desde XML. Por lo que entiendo, se usa en WCF para serializar objetos para moverlos a través del cable. XmlDictionaryWriter puede serializar usando formatos binarios, de texto o MTOM. Esperaría que solo usara esta clase si necesitara específicamente la serialización (de) personalizada para usarla sobre WCF. Vea también here.

Espero que ayude.

+1

El la información sobre la serialización (específicamente, MTOM) es realmente útil. ¡Gracias! – Nate

Cuestiones relacionadas