无法在XmlTextReader上设置设置?

女妖

我需要在XmlTextReader上设置MaxCharactersFromEntities,这是到目前为止的代码:

xmlDocument = new XmlDocument();

xmlTextReader = new XmlTextReader(fileInfo.FullName);
xmlTextReader.Settings = new XmlReaderSettings();
xmlTextReader.Settings.MaxCharactersFromEntities = 0;
var vr = new XmlValidatingReader(xmlTextReader);
vr.ValidationType = ValidationType.None;
vr.EntityHandling = EntityHandling.ExpandEntities;

xmlDocument.Load(vr);

Settings属性是只读的,因此无法设置,并且它是否为null?这应该如何工作?

lb

您应该改用XmlReader.Create(string, XmlReaderSettings)创建您的阅读器实例。

MSDN参考:

从.NET Framework 2.0开始,我们建议您改用System.Xml.XmlReader类。

这个想法是使用基类的Create(...)工厂方法,XmlReader而不是直接实例化派生类。另请参见工厂方法模式以获取更多信息。

由于在构造函数中XmlValidatingReader采用,因此其余代码不会受到影响XmlReader

因此,您应该以类似以下内容结束:

xmlDocument = new XmlDocument();

XmlReaderSettings settings = new XmlReaderSettings();
settings.MaxCharactersFromEntities = 0;
XmlReader reader = XmlReader.Create(fileInfo.FullName, settings);

var vr = new XmlValidatingReader(reader);
vr.ValidationType = ValidationType.None;
vr.EntityHandling = EntityHandling.ExpandEntities;

xmlDocument.Load(vr);

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章