首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >不能在XmlTextReader上设置设置?

不能在XmlTextReader上设置设置?
EN

Stack Overflow用户
提问于 2015-06-05 06:57:36
回答 2查看 3.4K关注 0票数 4

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

代码语言:javascript
复制
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);

设置属性是只读的,因此不能设置它的空值?这是怎么回事?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-06-05 07:05:36

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

来自MSDN引用:

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

其想法是使用创建(.)基类XmlReader的工厂方法,而不是直接实例化派生类。还请参阅工厂方法模式以获得更多信息。

代码的其余部分不受影响,因为XmlValidatingReader在构造函数中接受了一个XmlReader

所以你应该以这样的方式结束:

代码语言:javascript
复制
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);
票数 1
EN

Stack Overflow用户

发布于 2015-06-05 07:26:07

首先,您应该在构造XmlReaderSettings实例时传递XmlReader实例,而不是在以后更新读者的Settings属性时,-which是不可能的,因为该属性没有setter-:

代码语言:javascript
复制
var xmlDocument = new XmlDocument();

//create XmlReaderSettings first
var settings = new XmlReaderSettings();
settings.MaxCharactersFromEntities = 80; //0 doesn't make sense here, as it's the default value

//create XmlReader later, passing the pre-defined settings
var xmlReader = XmlReader.Create(fileInfo.FullName, settings);

//the rest of the codes remain untouched
var vr = new XmlValidatingReader(xmlReader);
vr.ValidationType = ValidationType.None;
vr.EntityHandling = EntityHandling.ExpandEntities;

xmlDocument.Load(vr);
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30660229

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档