Dieser Artikel wurde manuell übersetzt. Bewegen Sie den Mauszeiger über die Sätze im Artikel, um den Originaltext anzuzeigen. |
Übersetzung
Original
|
XmlReader-Klasse
Stellt einen Reader dar, der schnellen, nicht zwischengespeicherten Vorwärtszugriff auf XML-Daten bietet.
Assembly: System.Xml (in System.Xml.dll)
Der XmlReader-Typ macht die folgenden Member verfügbar.
| Name | Beschreibung | |
|---|---|---|
|
AttributeCount | Ruft beim Überschreiben in einer abgeleiteten Klasse die Anzahl der Attribute für den aktuellen Knoten ab. |
|
BaseURI | Ruft beim Überschreiben in einer abgeleiteten Klasse den Basis-URI des aktuellen Knotens ab. |
|
CanReadBinaryContent | Ruft einen Wert ab, der angibt, ob der XmlReader die Methoden für das Lesen von Inhalt im Binärformat implementiert. |
|
CanReadValueChunk | Ruft einen Wert ab, der angibt, ob der XmlReader die angegebene ReadValueChunk-Methode implementiert. |
|
CanResolveEntity | Ruft einen Wert ab, der angibt, ob dieser Reader Entitäten analysieren und auflösen kann. |
|
Depth | Ruft beim Überschreiben in einer abgeleiteten Klasse die Tiefe des aktuellen Knotens im XML-Dokument ab. |
|
EOF | Ruft beim Überschreiben in einer abgeleiteten Klasse einen Wert ab, der angibt, ob sich der Reader am Ende des Streams befindet. |
|
HasAttributes | Ruft einen Wert ab, der angibt, ob der aktuelle Knoten über Attribute verfügt. |
|
HasValue | Ruft beim Überschreiben in einer abgeleiteten Klasse einen Wert ab, der angibt, ob der aktuelle Knoten einen Value aufweisen kann. |
|
IsDefault | Ruft beim Überschreiben in einer abgeleiteten Klasse einen Wert ab, der angibt, ob der aktuelle Knoten ein Attribut ist, das aus dem in der DTD oder dem Schema definierten Standardwert generiert wurde. |
|
IsEmptyElement | Ruft beim Überschreiben in einer abgeleiteten Klasse einen Wert ab, der angibt, ob der aktuelle Knoten ein leeres Element ist (z. B. <MyElement/>). |
|
Item[Int32] | Ruft beim Überschreiben in einer abgeleiteten Klasse den Wert des Attributs mit dem angegebenen Index ab. |
|
Item[String] | Ruft beim Überschreiben in einer abgeleiteten Klasse den Wert des Attributs mit dem angegebenen Name ab. |
|
Item[String, String] | Ruft beim Überschreiben in einer abgeleiteten Klasse den Wert des Attributs mit dem angegebenen LocalName und NamespaceURI ab. |
|
LocalName | Ruft beim Überschreiben in einer abgeleiteten Klasse den lokalen Namen des aktuellen Knotens ab. |
|
Name | Ruft beim Überschreiben in einer abgeleiteten Klasse den gekennzeichneten Namen des aktuellen Knotens ab. |
|
NamespaceURI | Ruft beim Überschreiben in einer abgeleiteten Klasse den Namespace-URI (entsprechend der Definition in der Namespacespezifikation des W3C) des Knotens ab, auf dem der Reader positioniert ist. |
|
NameTable | Ruft beim Überschreiben in einer abgeleiteten Klasse die XmlNameTable ab, die dieser Implementierung zugeordnet ist. |
|
NodeType | Ruft beim Überschreiben in einer abgeleiteten Klasse den Typ des aktuellen Knotens ab. |
|
Prefix | Ruft beim Überschreiben in einer abgeleiteten Klasse das dem aktuellen Knoten zugeordnete Namespacepräfix ab. |
|
QuoteChar | Ruft beim Überschreiben in einer abgeleiteten Klasse das Anführungszeichen ab, mit dem der Wert eines Attributknotens eingeschlossen wird. |
|
ReadState | Ruft beim Überschreiben in einer abgeleiteten Klasse den Zustand des Readers ab. |
|
SchemaInfo | Ruft die Schemainformationen ab, die dem aktuellen Knoten nach der Schemavalidierung zugewiesen wurden. |
|
Settings | Ruft das zum Erstellen dieser XmlReader-Instanz verwendete XmlReaderSettings-Objekt ab. |
|
Value | Ruft beim Überschreiben in einer abgeleiteten Klasse den Textwert des aktuellen Knotens ab. |
|
ValueType | Ruft den CLR-Typ (Common Language Runtime) für den aktuellen Knoten ab. |
|
XmlLang | Ruft beim Überschreiben in einer abgeleiteten Klasse den aktuellen xml:lang-Bereich ab. |
|
XmlSpace | Ruft beim Überschreiben in einer abgeleiteten Klasse den aktuellen xml:space-Bereich ab. |
| Name | Beschreibung | |
|---|---|---|
|
Close | Ändert beim Überschreiben in einer abgeleiteten Klassen den ReadState in Closed. |
|
Create(Stream) | Erstellt mit dem angegebenen Stream eine neue XmlReader-Instanz. |
|
Create(String) | Erstellt eine neue XmlReader-Instanz mit angegebenem URI. |
|
Create(TextReader) | Erstellt einen neuen XmlReader mit dem angegebenen TextReader. |
|
Create(Stream, XmlReaderSettings) | Erstellt eine neue XmlReader-Instanz mit dem angegebenen Stream und dem angegebenen XmlReaderSettings-Objekt. |
|
Create(String, XmlReaderSettings) | Erstellt eine neue Instanz mit dem angegebenen URI und den angegebenen XmlReaderSettings. |
|
Create(TextReader, XmlReaderSettings) | Erstellt mit dem angegebenen XmlReader-Objekt und dem angegebenen TextReader-Objekt eine neue XmlReaderSettings-Instanz. |
|
Create(XmlReader, XmlReaderSettings) | Erstellt eine neue XmlReader-Instanz mit dem angegebenen XmlReader-Objekt und dem angegebenen XmlReaderSettings-Objekt. |
|
Create(Stream, XmlReaderSettings, String) | Erstellt mit dem angegebenen Stream, dem Basis-URI und dem XmlReaderSettings-Objekt eine neue XmlReader-Instanz. |
|
Create(Stream, XmlReaderSettings, XmlParserContext) | Erstellt mit dem angegebenen Stream, dem angegebenen XmlReaderSettings-Objekt und dem angegebenen XmlParserContext-Objekt eine neue XmlReader-Instanz. |
|
Create(String, XmlReaderSettings, XmlParserContext) | Erstellt mit dem angegebenen URI, dem angegebenen XmlReaderSettings-Objekt und dem angegebenen XmlParserContext-Objekt eine neue XmlReader-Instanz. |
|
Create(TextReader, XmlReaderSettings, String) | Erstellt mit dem angegebenen TextReader-Objekt, dem angegebenen XmlReaderSettings-Objekt und dem Basis-URI eine neue XmlReader-Instanz. |
|
Create(TextReader, XmlReaderSettings, XmlParserContext) | Erstellt mit dem angegebenen Objekten TextReader, XmlReaderSettings und XmlParserContext eine neue XmlReader-Instanz. |
|
Dispose() | |
|
Dispose(Boolean) | Gibt die vom XmlReader verwendeten nicht verwalteten Ressourcen und optional auch die verwalteten Ressourcen frei. |
|
Equals(Object) | Bestimmt, ob das angegebene Object und das aktuelle Object gleich sind. (Von Object geerbt.) |
|
Finalize | Gibt einem Objekt Gelegenheit zu dem Versuch, Ressourcen freizugeben und andere Bereinigungen durchzuführen, bevor es von der automatische Speicherbereinigung freigegeben wird. (Von Object geerbt.) |
|
GetAttribute(Int32) | Ruft beim Überschreiben in einer abgeleiteten Klasse den Wert des Attributs mit dem angegebenen Index ab. |
|
GetAttribute(String) | Ruft beim Überschreiben in einer abgeleiteten Klasse den Wert des Attributs mit dem angegebenen Name ab. |
|
GetAttribute(String, String) | Ruft beim Überschreiben in einer abgeleiteten Klasse den Wert des Attributs mit dem angegebenen LocalName und NamespaceURI ab. |
|
GetHashCode | Fungiert als Hashfunktion für einen bestimmten Typ. (Von Object geerbt.) |
|
GetType | Ruft den Type der aktuellen Instanz ab. (Von Object geerbt.) |
|
IsName | Ruft einen Wert ab, der angibt, ob das Zeichenfolgenargument ein gültiger XML-Name ist. |
|
IsNameToken | Ruft einen Wert ab, der angibt, ob das Zeichenfolgenargument ein gültiges XML-Namenstoken ist. |
|
IsStartElement() | Ruft MoveToContent auf und überprüft, ob der aktuelle Inhaltsknoten ein Starttag oder ein leeres Elementtag ist. |
|
IsStartElement(String) | Ruft MoveToContent auf und überprüft, ob der aktuelle Inhaltsknoten ein Starttag oder ein leeres Elementtag ist und die Name-Eigenschaft des gefundenen Elements mit dem angegebenen Argument übereinstimmt. |
|
IsStartElement(String, String) | Ruft MoveToContent auf und überprüft, ob der aktuelle Inhaltsknoten ein Starttag oder ein leeres Elementtag ist und ob die LocalName-Eigenschaft und die NamespaceURI-Eigenschaft des gefundenen Elements mit den angegebenen Zeichenfolgen übereinstimmen. |
|
LookupNamespace | Löst beim Überschreiben in einer abgeleiteten Klasse ein Namespacepräfix im Gültigkeitsbereich des aktuellen Elements auf. |
|
MemberwiseClone | Erstellt eine flache Kopie des aktuellen Object. (Von Object geerbt.) |
|
MoveToAttribute(Int32) | Wechselt beim Überschreiben in einer abgeleiteten Klasse zum Attribut mit dem angegebenen Index. |
|
MoveToAttribute(String) | Wechselt beim Überschreiben in einer abgeleiteten Klasse zum Attribut mit dem angegebenen Name. |
|
MoveToAttribute(String, String) | Wechselt beim Überschreiben in einer abgeleiteten Klasse zum Attribut mit dem angegebenen LocalName und NamespaceURI. |
|
MoveToContent | Überprüft, ob der aktuelle Knoten ein Inhaltsknoten (Textknoten ohne Leerraum, CDATA-, Element-, EndElement-, EntityReference- oder EndEntity-Knoten) ist. Wenn der Knoten kein Inhaltsknoten ist, springt der Reader zum nächsten Inhaltsknoten oder an das Ende der Datei. Knoten folgender Typen werden übersprungen: ProcessingInstruction, DocumentType, Comment, Whitespace und SignificantWhitespace. |
|
MoveToElement | Wechselt beim Überschreiben in einer abgeleiteten Klasse zu dem Element, das den aktuellen Attributknoten enthält. |
|
MoveToFirstAttribute | Wechselt beim Überschreiben in einer abgeleiteten Klasse zum ersten Attribut. |
|
MoveToNextAttribute | Wechselt beim Überschreiben in einer abgeleiteten Klasse zum nächsten Attribut. |
|
Read | Liest beim Überschreiben in einer abgeleiteten Klasse den nächsten Knoten aus dem Stream. |
|
ReadAttributeValue | Löst beim Überschreiben in einer abgeleiteten Klasse den Attributwert in einen oder mehrere Knoten vom Typ Text, EntityReference oder EndEntity auf. |
|
ReadContentAs | Liest den Inhalt als Objekt vom angegebenen Typ. |
|
ReadContentAsBase64 | Liest den Inhalt und gibt die Base64-decodierten binären Bytes zurück. |
|
ReadContentAsBinHex | Liest den Inhalt und gibt die BinHex-decodierten binären Bytes zurück. |
|
ReadContentAsBoolean | Liest den Textinhalt an der aktuellen Position als Boolean. |
|
ReadContentAsDateTime | Liest den Textinhalt an der aktuellen Position als DateTime-Objekt. |
|
ReadContentAsDecimal | Liest den Textinhalt an der aktuellen Position als Decimal-Objekt. |
|
ReadContentAsDouble | Liest den Textinhalt an der aktuellen Position als Gleitkommazahl mit doppelter Genauigkeit. |
|
ReadContentAsFloat | Liest den Textinhalt an der aktuellen Position als Gleitkommazahl mit einfacher Genauigkeit. |
|
ReadContentAsInt | Liest den Textinhalt an der aktuellen Position als 32-Bit-Ganzzahl mit Vorzeichen. |
|
ReadContentAsLong | Liest den Textinhalt an der aktuellen Position als 64-Bit-Ganzzahl mit Vorzeichen. |
|
ReadContentAsObject | Liest den Textinhalt an der aktuellen Position als Object. |
|
ReadContentAsString | Liest den Textinhalt an der aktuellen Position als String-Objekt. |
|
ReadElementContentAs(Type, IXmlNamespaceResolver) | Liest den Elementinhalt als angeforderten Typ. |
|
ReadElementContentAs(Type, IXmlNamespaceResolver, String, String) | Überprüft, ob der angegebene lokale Name und der angegebene Namespace-URI mit denen des aktuellen Elements übereinstimmen, und liest dann den Elementinhalt als angeforderten Typ. |
|
ReadElementContentAsBase64 | Liest das Element und decodiert den Base64-Inhalt. |
|
ReadElementContentAsBinHex | Liest das Element und decodiert den BinHex-Inhalt. |
|
ReadElementContentAsBoolean() | Liest das aktuelle Element und gibt den Inhalt als Boolean-Objekt zurück. |
|
ReadElementContentAsBoolean(String, String) | Überprüft, ob der angegebene lokale Name und der angegebene Namespace-URI mit denen des aktuellen Elements übereinstimmen, liest dann das aktuelle Element und gibt den Inhalt als Boolean-Objekt zurück. |
|
ReadElementContentAsDateTime() | Liest das aktuelle Element und gibt den Inhalt als DateTime-Objekt zurück. |
|
ReadElementContentAsDateTime(String, String) | Überprüft, ob der angegebene lokale Name und der angegebene Namespace-URI mit denen des aktuellen Elements übereinstimmen, liest dann das aktuelle Element und gibt den Inhalt als DateTime-Objekt zurück. |
|
ReadElementContentAsDecimal() | Liest das aktuelle Element und gibt den Inhalt als Decimal-Objekt zurück. |
|
ReadElementContentAsDecimal(String, String) | Überprüft, ob der angegebene lokale Name und der angegebene Namespace-URI mit denen des aktuellen Elements übereinstimmen, liest dann das aktuelle Element und gibt den Inhalt als Decimal-Objekt zurück. |
|
ReadElementContentAsDouble() | Liest das aktuelle Element und gibt den Inhalt als Gleitkommazahl mit doppelter Genauigkeit zurück. |
|
ReadElementContentAsDouble(String, String) | Überprüft, ob der angegebene lokale Name und der angegebene Namespace-URI mit denen des aktuellen Elements übereinstimmen, liest dann das aktuelle Element und gibt den Inhalt als Gleitkommazahl mit doppelter Genauigkeit zurück. |
|
ReadElementContentAsFloat() | Liest das aktuelle Element und gibt den Inhalt als Gleitkommazahl mit einfacher Genauigkeit zurück. |
|
ReadElementContentAsFloat(String, String) | Überprüft, ob der angegebene lokale Name und der angegebene Namespace-URI mit denen des aktuellen Elements übereinstimmen, liest dann das aktuelle Element und gibt den Inhalt als Gleitkommazahl mit einfacher Genauigkeit zurück. |
|
ReadElementContentAsInt() | Liest das aktuelle Element und gibt den Inhalt als 32-Bit-Ganzzahl mit Vorzeichen zurück. |
|
ReadElementContentAsInt(String, String) | Überprüft, ob der angegebene lokale Name und der angegebene Namespace-URI mit denen des aktuellen Elements übereinstimmen, liest dann das aktuelle Element und gibt den Inhalt als 32-Bit-Ganzzahl mit Vorzeichen zurück. |
|
ReadElementContentAsLong() | Liest das aktuelle Element und gibt den Inhalt als 64-Bit-Ganzzahl mit Vorzeichen zurück. |
|
ReadElementContentAsLong(String, String) | Überprüft, ob der angegebene lokale Name und der angegebene Namespace-URI mit denen des aktuellen Elements übereinstimmen, liest dann das aktuelle Element und gibt den Inhalt als 64-Bit-Ganzzahl mit Vorzeichen zurück. |
|
ReadElementContentAsObject() | Liest das aktuelle Element und gibt den Inhalt als Object zurück. |
|
ReadElementContentAsObject(String, String) | Überprüft, ob der angegebene lokale Name und der angegebene Namespace-URI mit denen des aktuellen Elements übereinstimmen, liest dann das aktuelle Element und gibt den Inhalt als Object zurück. |
|
ReadElementContentAsString() | Liest das aktuelle Element und gibt den Inhalt als String-Objekt zurück. |
|
ReadElementContentAsString(String, String) | Überprüft, ob der angegebene lokale Name und der angegebene Namespace-URI mit denen des aktuellen Elements übereinstimmen, liest dann das aktuelle Element und gibt den Inhalt als String-Objekt zurück. |
|
ReadElementString() | Liest ein Nur-Text-Element. |
|
ReadElementString(String) | Überprüft vor dem Lesen eines Nur-Text-Elements, ob die Name-Eigenschaft des gefundenen Elements mit der angegebenen Zeichenfolge übereinstimmt. |
|
ReadElementString(String, String) | Überprüft vor dem Lesen eines Nur-Text-Elements, ob die LocalName-Eigenschaft und die NamespaceURI-Eigenschaft des gefundenen Elements mit den angegebenen Zeichenfolgen übereinstimmen. |
|
ReadEndElement | Überprüft, ob der aktuelle Inhaltsknoten ein Endtag ist, und verschiebt den Reader auf den nächsten Knoten. |
|
ReadInnerXml | Liest beim Überschreiben in einer abgeleiteten Klasse den gesamten Inhalt, einschließlich Markup, als Zeichenfolge. |
|
ReadOuterXml | Ruft beim Überschreiben in einer abgeleiteten Klasse den Inhalt (einschließlich Markup) ab, der diesen Knoten und alle untergeordneten Elemente darstellt. |
|
ReadStartElement() | Überprüft, ob der aktuelle Knoten ein Element ist, und verschiebt den Reader auf den nächsten Knoten. |
|
ReadStartElement(String) | Überprüft, ob der aktuelle Inhaltsknoten ein Element mit dem angegebenen Name ist, und verschiebt den Reader auf den nächsten Knoten. |
|
ReadStartElement(String, String) | Überprüft, ob der aktuelle Inhaltsknoten ein Element mit dem angegebenen LocalName und NamespaceURI ist, und verschiebt den Reader auf den nächsten Knoten. |
|
ReadString | Liest beim Überschreiben in einer abgeleiteten Klasse den Inhalt eines Element- oder Textknotens als Zeichenfolge. |
|
ReadSubtree | Gibt eine neue XmlReader-Instanz zurück, die zum Lesen des aktuellen Knotens und aller Nachfolgerknoten verwendet werden kann. |
|
ReadToDescendant(String) | Verschiebt den XmlReader auf das nächste Nachfolgerelement mit dem angegebenen qualifizierten Namen. |
|
ReadToDescendant(String, String) | Verschiebt den XmlReader auf das nächste Nachfolgerelement mit dem angegebenen lokalen Namen und dem angegebenen Namespace-URI. |
|
ReadToFollowing(String) | Liest, bis ein Element mit dem angegebenen qualifizierten Namen gefunden wird. |
|
ReadToFollowing(String, String) | Liest, bis ein Element mit dem angegebenen lokalen Namen und dem angegebenen Namespace-URI gefunden wird. |
|
ReadToNextSibling(String) | Verschiebt den XmlReader auf das nächste nebengeordnete Element mit dem angegebenen qualifizierten Namen. |
|
ReadToNextSibling(String, String) | Verschiebt den XmlReader auf das nächste nebengeordnete Element mit dem angegebenen lokalen Namen und dem angegebenen Namespace-URI. |
|
ReadValueChunk | Liest umfangreiche Streams von Text, der in ein XML-Dokument eingebettet ist. |
|
ResolveEntity | Löst beim Überschreiben in einer abgeleiteten Klasse den Entitätsverweis für EntityReference-Knoten auf. |
|
Skip | Überspringt die untergeordneten Elemente des aktuellen Knotens. |
|
ToString | Gibt eine Zeichenfolge zurück, die das aktuelle Objekt darstellt. (Von Object geerbt.) |
| Name | Beschreibung | |
|---|---|---|
|
IDisposable.Dispose | Eine Beschreibung dieses Members finden Sie unter IDisposable.Dispose. |
XmlReader stellt schreibgeschützten Vorwärtszugriff auf einen Stream von XML-Daten bereit. Die XmlReader-Klasse entspricht den W3C-Empfehlungen für XML 1.0 (Extensible Markup Language) und die Namespaces in XML.
Der aktuelle Knoten verweist auf den Knoten, auf dem der Reader positioniert ist. Der Reader wird durch eine beliebige Lesemethode weitergerückt, und der Wert des aktuellen Knotens wird durch Eigenschaften wiedergegeben.
Wichtig
|
|---|
|
Zwar enthält Microsoft .NET Framework konkrete Implementierungen der XmlReader-Klasse, z. B. die Klassen XmlTextReader, XmlNodeReader und XmlValidatingReader, doch wird für die Version 2.0 empfohlen, XmlReader-Instanzen mit der Create-Methode zu erstellen. Weitere Informationen finden Sie unter Erstellen von XML-Readern. |
XmlReader löst bei XML-Analysefehlern eine XmlException aus. Nachdem eine Ausnahme ausgelöst wurde, ist der Zustand des Reader nicht vorhersehbar. Der angegebene Knotentyp könnte sich z. B. vom tatsächlichen Knotentyp des aktuellen Knotens unterscheiden. Überprüfen Sie mit der ReadState-Eigenschaft, ob sich der Reader im Fehlerzustand befindet.
Nähere Erläuterungen zur XmlReader-Klasse finden Sie unter Lesen von XML mit dem "XmlReader".
Sicherheitsüberlegungen
Beachten Sie beim Arbeiten mit der XmlReader-Klasse folgende Punkte:
-
Vom XmlReader ausgelöste Ausnahmen können Pfadinformationen offen legen, die in der Anwendung nicht weitergegeben werden sollen. Die Anwendungen müssen Ausnahmen abfangen und entsprechend verarbeiten.
-
Aktivieren Sie die DTD-Verarbeitung nur, wenn Sie keine Bedenken hinsichtlich der Gefahr von Denial-of-Service-Angriffen haben oder vertrauenswürdige Quellen verwenden. Die DTD-Verarbeitung ist standardmäßig für von der Create-Methode erstellte XmlReader-Objekte deaktiviert.
Bei aktivierter DTD-Verarbeitung können Sie mithilfe des XmlSecureResolver die Ressourcen beschränken, auf die der XmlReader zugreifen kann. Sie können die Anwendung auch so entwerfen, dass die XML-Verarbeitung bezüglich Arbeitsspeicher und Zeit eingeschränkt wird. Konfigurieren Sie z. B. Timeoutbeschränkungen in der ASP.NET-Anwendung.
-
XML-Daten können Verweise auf externe Ressourcen, z. B. eine Schemadatei, einschließen. Externe Ressourcen werden standardmäßig mit einem XmlUrlResolver-Objekt ohne Benutzeranmeldeinformationen aufgelöst. Durch die folgenden Aktionen können Sie die Sicherheit weiter erhöhen:
-
Beschränken Sie die Ressourcen, auf die der XmlReader zugreifen kann, indem Sie die XmlReaderSettings.XmlResolver-Eigenschaft auf ein XmlSecureResolver-Objekt festlegen.
-
Lassen Sie nicht zu, dass der XmlReader durch Festlegen der XmlReaderSettings.XmlResolver-Eigenschaft auf null beliebige externe Ressourcen öffnen kann.
-
-
XML-Daten können eine große Anzahl von Attributen, Namespacedeklarationen, geschachtelten Elementen usw. enthalten, deren Verarbeitung eine gewisse Zeit in Anspruch nehmen kann. Um die Größe der Eingabe zu begrenzen, die an den XmlReader gesendet wird, erstellen Sie eine benutzerdefinierte IStream-Implementierung, die Sie dem XmlReader bereitstellen.
-
Die ReadValueChunk-Methode kann verwendet werden, um große Datenstreams zu behandeln. Mit dieser Methode wird immer nur eine geringe Anzahl von Zeichen gelesen, statt eine einzige Zeichenfolge für den gesamten Wert zu reservieren.
-
Beim Lesen eines XML-Dokuments mit einer großen Anzahl von eindeutigen lokalen Namen, Namespaces oder Präfixen kann ein Problem auftreten. Wenn Sie eine von XmlReader abgeleitete Klasse verwenden und für jedes Element die Eigenschaft LocalName, Prefix oder NamespaceURI aufrufen, wird die zurückgegebene Zeichenfolge einer NameTable hinzugefügt. Die Größe der in der NameTable gespeicherten Auflistung nimmt nie ab, sodass ein virtueller Speicherverlust an Zeichenfolgenhandles eintritt. Eine mögliche Gegenmaßnahme ist, von der NameTable-Klasse abzuleiten und ein Höchstgrößenkontingent zu erzwingen. (Die Verwendung einer NameTable lässt sich nicht umgehen, und der Austausch einer vollen NameTable ist nicht möglich.) Eine weitere Gegenmaßnahme besteht darin, nach Möglichkeit anstelle der genannten Eigenschaften die MoveToAttribute-Methode mit der IsStartElement-Methode zu verwenden. Diese Methoden geben keine Zeichenfolgen zurück und umgehen somit das Problem eines Überlaufs der NameTable-Auflistung.
Windows 7, Windows Vista SP1 oder höher, Windows XP SP3, Windows XP SP2 x64 Edition, Windows Server 2008 (Server Core wird nicht unterstützt), Windows Server 2008 R2 (Server Core wird mit SP1 oder höher unterstützt), Windows Server 2003 SP2
.NET Framework unterstützt nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen für .NET Framework.
Wichtig