2014-01-16 21 views
5

Ich möchte System.Xml.XmlReader.ReadString() verwenden, aber ich bemerkte, dass es nicht in Intellisense angezeigt wird, da die Funktion mit [EditorBrowsable(EditorBrowsableState.Never)] dekoriert ist. Obwohl ich nicht als [Obsolete] markiert bin, nehme ich an, Microsoft möchte nicht, dass ich es verwende.Ist XmlReader.ReadString veraltet oder veraltet?

Ich kann keine Hinweise auf MSDN finden. Was sollte ich stattdessen verwenden? In ILSpy sehe ich ReadElementContentAsString() und ReadContentAsString(). Soll ich das stattdessen verwenden? Ich benutze .Net 4.5.

Falls es relevant ist, diese Frage wurde von dieser Antwort aufgefordert: https://stackoverflow.com/a/625463/47589

Antwort

3

Es isn't deprecated. Ich denke, deine Argumentation ist richtig. Die Framework-Entwickler haben es wahrscheinlich als [EditorBrowsable(EditorBrowsableState.Never)] markiert, so dass es nicht in Intellisense angezeigt wird, und "stupst" Sie an, eine bessere Alternative zu verwenden, die vielleicht ReadContentAsString.

Nach C# In a Nutshell.

ReadString und ReadElementString verhalten sich wie ReadContentAsString und ReadElementContentAsString, mit der Ausnahme, dass sie werfen einen Exception, wenn es mehr als ein einzigen Textknoten innerhalb des Element. Im Allgemeinen sollten diese Methoden vermieden werden, da sie eine Ausnahme auslösen, wenn ein Element einen Kommentar enthält.

Vielleicht ist das, warum Sie ReadContentAsString in der IL sehen, da das Framework intern alle Anrufe ReadString-ReadContentAsString Umwandlung und die Rahmen Entwickler versteckte absichtlich ReadString vom intellisense.

Siehe im Zusammenhang:

+0

Was ist die bessere Alternative? – Amy

+1

1000 Punkte gegeben. Nette Antwort, Alter –