Classes de collection d'extension Web

Classes de collection d'extension Web

Classes de collection d’extensions Web

Ce guide montre comment les quatre classes de collection d’extensions web dans Aspose.Words FOSS pour .NET — TaskPaneCollection, WebExtensionBindingCollection, WebExtensionPropertyCollection, et WebExtensionReferenceCollection — partagent un contrat de collection unique via la classe abstraite BaseWebExtensionCollection de base. Pour ce que les panneaux de tâches, les liaisons et les propriétés d’extension web représentent réellement, consultez le Extensions Web guide ; cette page ne couvre que le conteneur API qu’ils partagent tous.


BaseWebExtensionCollection : Un contrat, quatre collections

BaseWebExtensionCollection est la classe de base de TaskPaneCollection, WebExtensionBindingCollection, WebExtensionPropertyCollection et WebExtensionReferenceCollection. Elle implémente IEnumerable<T> et définit chaque membre que ces quatre collections concrètes exposent — aucune des quatre sous-classes ne déclare de méthodes ou de propriétés supplémentaires au-delà de ce que fournit la classe de base.


Ajout, suppression et comptage des éléments

Add(item) ajoute l’élément spécifié à la collection. Clear() supprime tous les éléments. Remove(index) supprime l’élément à l’index indiqué — il prend un index positionnel, pas une référence d’élément, de sorte que la suppression d’un élément spécifique implique d’abord de localiser son index. Count indique le nombre d’éléments actuellement dans la collection.


Énumération d’une collection

GetEnumerator() renvoie un énumérateur qui peut parcourir la collection, de sorte que toute collection dérivée de BaseWebExtensionCollection prend en charge une boucle foreach sur ses éléments sans code d’itération spécifique au type.


Conseils et meilleures pratiques

  • Parce que les quatre collections partagent le même contrat de base, le code écrit contre les membres Add, Clear, Remove, Count et GetEnumerator de BaseWebExtensionCollection fonctionne de manière uniforme sur TaskPaneCollection, WebExtensionBindingCollection, WebExtensionPropertyCollection et WebExtensionReferenceCollection.
  • Remove(index) prend un indice positionnel — si vous ne disposez que de l’élément lui-même, parcourez la collection pour en trouver d’abord l’indice, ou suivez l’indice au moment de l’insertion.
  • Lisez Count avant d’itérer, ou foreach directement sur la collection avec GetEnumerator() plutôt que d’indexer manuellement, car le contrat de base n’expose pas de récupérateur positionnel.
  • Appelez Clear() lorsque vous devez réinitialiser une collection plutôt que d’appeler Remove de façon répétée dans une boucle.

Problèmes courants

ProblèmeCauseCorrection
Remove n’accepte pas l’élément lui-mêmeRemove(index) sur les collections dérivées de BaseWebExtensionCollection prend un indice positionnel, pas une référenceTrouvez d’abord l’indice de l’élément (par exemple lors de l’énumération), puis appelez Remove(index)
Parcourir l’une des quatre collections semble dupliqué entre les typesChaque collection est un type concret distinct, mais elles partagent toutes les membres de BaseWebExtensionCollectionÉcrivez la logique d’itération ou d’utilitaire partagée une fois en vous basant sur les membres Add, Clear, Remove, Count et GetEnumerator communs aux quatre
Pas sûr du type de collection concret dont un morceau de code a besoinLes quatre collections sont exposées à partir de différentes propriétés sur WebExtension et DocumentVérifiez le Web Extensions guide indiquant quelle propriété renvoie quel type de collection

FAQ

Pourquoi les quatre collections d’extensions web se comportent-elles de la même manière ?

Ils dérivent tous de la même classe de base abstraite, BaseWebExtensionCollection, qui définit Add, Clear, Remove, Count et GetEnumerator — aucune des quatre sous-classes n’ajoute ses propres membres.

Comment supprimer un élément spécifique d’une de ces collections ?

Appelez Remove(index) avec l’indice positionnel de l’élément — localisez l’indice en énumérant d’abord la collection si vous ne disposez que de la référence de l’élément.

Puis-je parcourir l’une de ces quatre collections de la même façon ?

Oui — les quatre implémentent IEnumerable<T> jusqu’à BaseWebExtensionCollection, donc GetEnumerator() / foreach fonctionne de manière identique pour chacune d’elles.

Où puis-je apprendre ce que représente réellement un élément WebExtensionBinding ou TaskPane ?

Voir le Web Extensions guide — cette page ne couvre que le comportement du conteneur de collections partagé, et non les objets de domaine que les collections contiennent.


API Reference Résumé

Class/MethodDescription
BaseWebExtensionCollectionClasse de base abstraite partagée par les quatre types de collection d’extensions web
BaseWebExtensionCollection.Add(item)Ajoute un élément à la collection
BaseWebExtensionCollection.Clear()Supprime tous les éléments de la collection
BaseWebExtensionCollection.Remove(index)Supprime l’élément à l’index spécifié
BaseWebExtensionCollection.GetEnumerator()Renvoie un énumérateur pour parcourir la collection
BaseWebExtensionCollection.CountNombre d’éléments dans la collection
TaskPaneCollectionConcret BaseWebExtensionCollection de TaskPane éléments
WebExtensionBindingCollectionConcret BaseWebExtensionCollection de WebExtensionBinding éléments
WebExtensionPropertyCollectionConcret BaseWebExtensionCollection de WebExtensionProperty éléments
WebExtensionReferenceCollectionConcret BaseWebExtensionCollection de WebExtensionReference éléments

Voir aussi

 Français