如果推荐使用xmlwriter,xmltextwriter的目的是什么

时间:2014-09-27 14:15:45

标签: c# xml serialization

根据MSDN

  

虽然Microsoft .NET Framework包含XmlTextWriter类,它是XmlWriter类的具体实现,但在.NET Framework 2.0版中,建议的做法是使用Create方法创建XmlWriter实例。

因此,如果我们必须使用XmlWriter,那么拥有XmlTextWriter的目的是什么? 它为什么存在?

2 个答案:

答案 0 :(得分:4)

XMLWriter是一个抽象类,它充当所有XML编写器的基类型。它是随.NET 1.1引入的。 XMLTextWriterXMLWriter的许多可能实现之一,特别是用于创建文本表示。它也是在.NET 1.1中引入的。

现在,在.NET 2中,XMLWriter类已扩展为包含其他静态Create方法,例如XMLWriter.Create(string)将XML写入文件。这些方法创建一个实现XMLWriter的内部类型的对象(因此它使用的实际类型不可见)。这样,您不必担心实际的实现,但可以使用公共基类型XMLWriter来使用它。

这些Create方法可以完全替换以前的XMLTextWriter,但由于.NET框架希望保持向后兼容,所以它必须保留XMLTextWriter,尽管XMLWriter现在能够处理这些案件了。

答案 1 :(得分:1)

XmlTextWriter类是XmlWriter抽象类的实现之一。

该文本有些误导,因为它实际上不可能创建抽象XmlWriter类的实例。当您调用Create方法时,它将创建一个继承自XmlWriter的类的实例。例如,为流调用Create将返回XmlWellFormedWriter类的实例。

使用Create方法获取实例的目的是,它可以根据您尝试的操作使用最适合的不同类。您告诉框架创建适当类的实例,这样您就不必担心它。