Web-Extension-Sammlungsklassen

Web-Extension-Sammlungsklassen

Web-Extension-Sammlungsklassen

Dieser Leitfaden zeigt, wie die vier Web-Extension-Sammlungsklassen in Aspose.Words FOSS für .NET — TaskPaneCollection, WebExtensionBindingCollection, WebExtensionPropertyCollection, und WebExtensionReferenceCollection — einen einzigen Sammlungsvertrag über die abstrakte BaseWebExtensionCollection Basisklasse teilen. Für das, was Task-Panes, Bindungen und Web-Extension-Eigenschaften tatsächlich darstellen, siehe die Web-Erweiterungen Leitfaden; diese Seite behandelt nur den Container API, den sie gemeinsam nutzen.


BaseWebExtensionCollection: Ein Vertrag, Vier Sammlungen

BaseWebExtensionCollection ist die Basisklasse für TaskPaneCollection, WebExtensionBindingCollection, WebExtensionPropertyCollection und WebExtensionReferenceCollection. Sie implementiert IEnumerable<T> und definiert jedes Mitglied, das diese vier konkreten Sammlungen bereitstellen — keiner der vier Subklassen deklariert zusätzliche Methoden oder Eigenschaften über das hinaus, was die Basisklasse bietet.


Hinzufügen, Entfernen und Zählen von Elementen

Add(item) fügt das angegebene Element zur Sammlung hinzu. Clear() entfernt alle Elemente. Remove(index) entfernt das Element am angegebenen Index — es erwartet ein positionsbezogenes index, nicht eine Elementreferenz, sodass das Entfernen eines bestimmten Elements zuerst dessen Index erfordert. Count gibt die aktuelle Anzahl der Elemente in der Sammlung zurück.


Durchlaufen einer Sammlung

GetEnumerator() gibt einen Enumerator zurück, der durch die Sammlung iterieren kann, sodass jede von BaseWebExtensionCollection abgeleitete Sammlung eine foreach-Schleife über ihre Elemente unterstützt, ohne typenspezifischen Iterationscode.


Tipps und bewährte Verfahren

  • Da alle vier Sammlungen denselben Basisvertrag teilen, funktioniert Code, der gegen die Add, Clear, Remove, Count und GetEnumerator Mitglieder von BaseWebExtensionCollection geschrieben wurde, einheitlich über TaskPaneCollection, WebExtensionBindingCollection, WebExtensionPropertyCollection und WebExtensionReferenceCollection.
  • Remove(index) verwendet einen Positionsindex — wenn Sie nur das Element selbst haben, enumerieren Sie zunächst die Sammlung, um dessen Index zu finden, oder verfolgen Sie den Index zum Zeitpunkt der Einfügung.
  • Lesen Sie Count vor dem Iterieren, oder foreach Sie die Sammlung direkt mit GetEnumerator(), anstatt manuell zu indizieren, da der Basisvertrag keinen positionsbasierten Getter bereitstellt.
  • Rufen Sie Clear() auf, wenn Sie eine Sammlung zurücksetzen müssen, anstatt in einer Schleife wiederholt Remove aufzurufen.

Häufige Probleme

ProblemUrsacheKorrektur
Remove akzeptiert das Element selbst nichtRemove(index) bei von BaseWebExtensionCollection abgeleiteten Sammlungen verwendet einen Positionsindex, nicht eine ReferenzErmitteln Sie zuerst den Index des Elements (z.B. beim Durchzählen), dann rufen Sie Remove(index) auf
Die Iteration einer der vier Sammlungen wirkt über die Typen hinweg dupliziertJede Sammlung ist ein separater konkreter Typ, aber sie teilen alle die Mitglieder von BaseWebExtensionCollectionSchreiben Sie die gemeinsame Iterations- oder Hilfslogik einmal für die Mitglieder Add, Clear, Remove, Count und GetEnumerator, die allen vier gemeinsam sind
Unsicher, welchen konkreten Sammlungs-Typ ein Code-Abschnitt benötigtDie vier Sammlungen werden von verschiedenen Eigenschaften in WebExtension und Document bereitgestelltÜberprüfen Sie die Web-Erweiterungen Leitfaden, welche Eigenschaft welchen Sammlungstyp zurückgibt

FAQ

Warum verhalten sich die vier web-extension Sammlungen auf dieselbe Weise?

Sie erben alle von derselben abstrakten Basisklasse BaseWebExtensionCollection, die Add, Clear, Remove, Count und GetEnumerator definiert — keiner der vier Subklassen fügt eigene Mitglieder hinzu.

Wie entferne ich ein bestimmtes Item aus einer dieser Sammlungen?

Rufen Sie Remove(index) mit dem Positionsindex des Items auf — ermitteln Sie den Index, indem Sie die Sammlung zuerst aufzählen, falls Sie nur die Item-Referenz haben.

Kann ich irgendeine dieser vier Sammlungen auf dieselbe Weise durchlaufen?

Ja — alle vier implementieren IEnumerable<T> bis BaseWebExtensionCollection, sodass GetEnumerator() / foreach identisch über sie hinweg funktioniert.

Wo erfahre ich, was ein WebExtensionBinding- oder TaskPane-Item tatsächlich repräsentiert?

Siehe die Web-Erweiterungen Leitfaden — diese Seite behandelt nur das Verhalten des gemeinsamen Sammlungscontainers, nicht die Domänenobjekte, die die Sammlungen enthalten.


API Reference Zusammenfassung

Klasse/MethodeBeschreibung
BaseWebExtensionCollectionAbstrakte Basisklasse, die von allen vier Web-Extension-Sammlungstypen gemeinsam genutzt wird
BaseWebExtensionCollection.Add(item)Fügt ein Element zur Sammlung hinzu
BaseWebExtensionCollection.Clear()Entfernt alle Elemente aus der Sammlung
BaseWebExtensionCollection.Remove(index)Entfernt das Element am angegebenen Index
BaseWebExtensionCollection.GetEnumerator()Gibt einen Enumerator zurück, um die Sammlung zu durchlaufen
BaseWebExtensionCollection.CountAnzahl der Elemente in der Sammlung
TaskPaneCollectionKonkretes BaseWebExtensionCollection von TaskPane Elementen
WebExtensionBindingCollectionKonkretes BaseWebExtensionCollection von WebExtensionBinding Elementen
WebExtensionPropertyCollectionKonkrete BaseWebExtensionCollection von WebExtensionProperty Elementen
WebExtensionReferenceCollectionKonkrete BaseWebExtensionCollection von WebExtensionReference Elementen

Siehe auch

 Deutsch