2014-01-16 248 views
5

我想使用System.Xml.XmlReader.ReadString(),但我注意到它并未显示在Intellisense中,因为该功能是用[EditorBrowsable(EditorBrowsableState.Never)]修饰的。尽管没有被标记为[Obsolete],但我认为微软不希望我使用它。XmlReader.ReadString是否已被弃用或废弃?

我在MSDN上找不到任何提及。我应该用什么来代替?在ILSpy中,我看到ReadElementContentAsString()ReadContentAsString()。这是我想用的吗?我正在使用.Net 4.5。

如果它是相关的,这个问题是提示您通过这样的回答:https://stackoverflow.com/a/625463/47589

回答

3

isn't deprecated。我认为你的推理是正确的。框架开发人员可能将其标记为[EditorBrowsable(EditorBrowsableState.Never)],以便它不会显示在智能感知中,并“推动”您使用更好的替代方案,可能是ReadContentAsString

根据C# In a Nutshell

ReadStringReadElementString的行为很像0​​ 和ReadElementContentAsString,但他们抛出 Exception如果有比 元素内的文本节点多。一般而言,应避免使用这些方法,因为如果元素包含注释,则会抛出异常。

也许这就是为什么你在IL看到ReadContentAsString,因为框架内部将所有来电ReadStringReadContentAsString和框架开发人员故意隐瞒ReadString从智能感知。

查看相关:System.ComponentModel.EditorBrowsable was written by idiots

+0

什么是更好的选择? – Amy

+1

给出1000分。很好的回答家伙 –