XmlTextWriter和XmlWriter有什么区别?

29
我正在研究C#中的两个类:XmlTextWriterXmlWriter。有人能解释一下它们之间的区别,并告诉我应该在哪里使用哪个吗?

3
首先,你不能实例化 XmlWriter - BoltClock
1
@BoltClock 嗯,从技术上讲是的,但它有一个静态的Create()方法来创建实例。这算不算? - Marcel
2
@Marcel:你只能创建子类的实例。你不能使用new XmlWriter,因为它是抽象的。 - BoltClock
1
@BoltClock 我刚刚调用了 XmlWriter.Create(stream, settings),它给我返回了一个 XmlWriter。在文档中也确切地描述了这样做的方法:http://msdn.microsoft.com/en-us/library/ms162617%28v=vs.110%29.aspx - Marcel
1
@Marcel:在该实例上调用GetType()会返回什么? - BoltClock
1
在我的情况下,它是一个“XmlWellFormedWriter”。你明白了。 - Marcel
1个回答

32

XmlWriter 是一个抽象类。
XmlTextWriterXmlWriter 的一个具体实现。

您应该总是调用 XmlWriter.Create

MSDN 上说:

在 .NET Framework 版本 2.0 发布中,推荐的做法是使用 XmlWriter.Create 方法和 XmlWriterSettings 类来创建 XmlWriter 实例。这可以让您充分利用此版本中引入的所有新功能。有关更多信息,请参阅创建 XML 编写器


1
你应该总是调用XmlWriter.Create。为什么要这样断言? - Steve B
5
@Steve: 因为微软这样做。 - SLaks
1
很遗憾,XmlWriterXmlWriterSettings缺少一个QuoteChar属性,而XmlTextWriter有这个属性,如果您需要使用“单引号”属性而不是“双引号”属性,则它们将变得无用。 - Ray

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接