XMLWriter vs XMLDictionaryWriter

前端 未结 2 433
忘了有多久
忘了有多久 2021-01-04 01:30

What\'s the difference between XMLWriter and XMLDictionaryWriter? In which cases is each one generally used?

2条回答
  •  攒了一身酷
    2021-01-04 02:15

    XmlWriter is an abstract class of which XmlDictionaryWriter is one of the classes that inherits from it and is itself an abstract class.

    I am taking a stab in the dark that you want to use it with the DataContractSerializer or with de/serialization in general. The XmlDictionaryWriter is the base class used by WCF to do its de/serialization.

    From that I would deduce that there must be some performance tuning in the XmlDictionaryWriter to make it more performant with WCF de/serialization tasks. In fact if you call the WriteObject(Stream, object) instead of WriteObject(XmlWriter, object) or WriteObject(XmlDictionaryWriter, object) methods it will create an XmlDictionaryWriter for you

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

提交回复
热议问题