Objektvergleich unter Verwendung von "XmlNameTable" mit "XmlReader"

Die XmlNameTable-Klasse aktiviert die Implementierungen der XmlReader-Klasse, um beim Analysieren der Daten oder beim Durchführen von Vergleichsvorgängen für XML-Dokumente statt Zeichenfolgenvergleichen Zeigervergleiche zu verwenden.Die Verwendung dieser Tabelle führt beim Vergleichen und Verwenden von Element- und Attributnamen zur Leistungssteigerung der von der XmlReader-Klasse abgeleiteten Klassen.Die XmlNameTable-Klasse reduziert die Speichermenge, die während der Analyse zugewiesen wurde, da jeder Element- oder Attributname nur einmal zugewiesen wird.Wenn derselbe Name in einem XML-Dokument mehrmals auftritt, wird dieselbe Instanz des Zeichenfolgenobjekts verwendet, das den Namen speichert.

Hinweis

Die empfohlene Vorgehensweise für .NET Framework 2.0 besteht im Erstellen von XmlReader-Instanzen mithilfe der XmlReaderSettings-Klasse und der Create-Methode.Dadurch können Sie alle Vorteile der in .NET Framework eingeführten neuen Funktionen uneingeschränkt nutzen.Weitere Informationen finden Sie unter Erstellen von XML-Readern.

Verwenden von "XmlNameTable"

Die XmlNameTable-Klasse ist eine abstrakte Klasse mit einer NameTable-Klasse als Implementierung.Die NameTable-Klasse enthält atomatisierte Versionen von Element- und Attributnamen mit Namespace-URIs und Präfixen.Wenn die Anwendung viele Vergleiche für Element- oder Attributnamen durchführt, sollte sie die NameTable-Klasse aus der XmlReader-Klasse verwenden.Der Benutzer kann die NameTable-Klasse abrufen, die der Reader aus der XmlReader.NameTable-Eigenschaft verwendet.Eine Beschreibung zur Atomisierung finden Sie unter XmlNameTable.

Mit der Add-Methode kann die Anwendung der Tabelle Namen hinzufügen.Im folgenden Beispiel wird dargestellt, dass Vergleiche anschließend mit der Equals-Methode oder dem ==-Operator durchgeführt werden. Damit wird festgestellt, ob das im Methodenaufruf vorhandene Objekt dieselbe Instanz des aktuellen Objekts darstellt.

Dim cust As Object = reader.NameTable.Add("Customer")
While reader.Read()
   ' The "if" uses efficient pointer comparison.
   If cust Is reader.Name Then
      ...
   End If
End While
object cust = reader.NameTable.Add("Customer");
while (reader.Read())
{
   // The "if" uses efficient pointer comparison.
   if (cust == reader.Name)   
   {
      ...
   }
}

Siehe auch

Konzepte

Lesen von XML mit dem "XmlReader"

Weitere Ressourcen

Verwenden der XmlReader-Klasse