根据MSDN:
虽然Microsoft .NET Framework包含XmlTextWriter类,它是XmlWriter类的具体实现,但在.NET Framework 2.0版中,建议的做法是使用Create方法创建XmlWriter实例。
因此,如果我们必须使用XmlWriter,那么拥有XmlTextWriter的目的是什么? 它为什么存在?
答案 0 :(得分:4)
XMLWriter
是一个抽象类,它充当所有XML编写器的基类型。它是随.NET 1.1引入的。 XMLTextWriter
是XMLWriter
的许多可能实现之一,特别是用于创建文本表示。它也是在.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
方法获取实例的目的是,它可以根据您尝试的操作使用最适合的不同类。您告诉框架创建适当类的实例,这样您就不必担心它。