Web-Extension Collectieklassen
Web-Extensie Collectieklassen
Deze gids laat zien hoe de vier web-extensie verzamelingsklassen in Aspose.Words FOSS voor .NET — TaskPaneCollection, WebExtensionBindingCollection, WebExtensionPropertyCollection, en WebExtensionReferenceCollection — een enkel verzamelingscontract delen via de abstracte BaseWebExtensionCollection basisklasse. Voor wat taakvensters, bindings en web-extensie-eigenschappen daadwerkelijk vertegenwoordigen, zie de Webextensies gids; deze pagina behandelt alleen de container API die ze allemaal delen.
BaseWebExtensionCollection: Eén contract, vier collecties
BaseWebExtensionCollection is de basisklasse voor TaskPaneCollection, WebExtensionBindingCollection, WebExtensionPropertyCollection en WebExtensionReferenceCollection. Het implementeert IEnumerable<T> en definieert elk lid dat deze vier concrete collecties blootstellen — geen van de vier subklassen verklaart extra methoden of eigenschappen van zichzelf, buiten wat de basisklasse biedt.
Items toevoegen, verwijderen en tellen
Add(item) voegt het opgegeven item toe aan de collectie. Clear() verwijdert alle elementen. Remove(index) verwijdert het item op de opgegeven index — het neemt een positionele index, geen itemreferentie, dus het verwijderen van een specifiek item betekent eerst de index ervan vinden. Count rapporteert het aantal elementen dat momenteel in de collectie aanwezig is.
Een collectie enumereren
GetEnumerator() retourneert een enumerator die door de collectie kan itereren, zodat elke BaseWebExtensionCollection-afgeleide collectie een foreach-lus over zijn items ondersteunt zonder type-specifieke iteratiecode.
Tips en best practices
- Omdat alle vier collecties hetzelfde basiscontract delen, werkt code die tegen de
Add,Clear,Remove,CountenGetEnumeratorleden vanBaseWebExtensionCollectionis geschreven, uniform overTaskPaneCollection,WebExtensionBindingCollection,WebExtensionPropertyCollectionenWebExtensionReferenceCollection. Remove(index)neemt een positionele index — als je alleen het item zelf hebt, doorloop dan de collectie om eerst de index te vinden, of houd de index bij op het moment van invoegen.- Lees
Countvoordat je iterereert, offoreachdirect over de collectie metGetEnumerator()in plaats van handmatig te indexeren, aangezien het basiscontract geen positionele getter blootstelt. - Roep
Clear()aan wanneer je een collectie moet resetten in plaats van herhaaldelijkRemoveaan te roepen in een lus.
Veelvoorkomende problemen
| Probleem | Oorzaak | Oplossen |
|---|---|---|
Remove accepteert het item zelf niet | Remove(index) op door BaseWebExtensionCollection afgeleide collecties neemt een positionele index, geen referentie | Zoek eerst de index van het item (bijvoorbeeld tijdens het doorlopen), roep daarna Remove(index) aan |
| Het itereren over een van de vier collecties voelt dubbelop over de typen heen | Elke collectie is een apart concreet type, maar ze delen allemaal de leden van BaseWebExtensionCollection | Schrijf gedeelde iteratie- of hulplogica één keer voor de leden Add, Clear, Remove, Count en GetEnumerator die gemeenschappelijk zijn voor alle vier |
| Onzeker welk concreet collectietype een stuk code nodig heeft | De vier collecties worden blootgesteld via verschillende eigenschappen op WebExtension en Document | Bekijk de Webextensies handleiding voor welke eigenschap welk collectietype retourneert |
FAQ
Waarom gedragen de vier web-extension-collecties zich op dezelfde manier?
Ze erven allemaal van dezelfde abstracte basisklasse, BaseWebExtensionCollection, die Add, Clear, Remove, Count en GetEnumerator definieert — geen van de vier subklassen voegt eigen leden toe.
Hoe verwijder ik een specifiek item uit een van deze collecties?
Roep Remove(index) aan met de positionele index van het item — zoek de index op door eerst de collectie te enumereren als je alleen de itemreferentie hebt.
Kan ik een van deze vier collecties op dezelfde manier itereren?
Ja — alle vier implementeren IEnumerable<T> tot en met BaseWebExtensionCollection, dus GetEnumerator() / foreach werkt identiek voor hen.
Waar kom ik te weten wat een WebExtensionBinding of TaskPane item eigenlijk vertegenwoordigt?
Zie de Webextensies handleiding — deze pagina behandelt alleen het gedrag van de gedeelde collectiecontainer, niet de domeinobjecten die de collecties bevatten.
API Reference Samenvatting
| Klasse/Methode | Beschrijving |
|---|---|
BaseWebExtensionCollection | Abstracte basisklasse die door alle vier web-extensie collectie-typen wordt gedeeld |
BaseWebExtensionCollection.Add(item) | Voegt een item toe aan de collectie |
BaseWebExtensionCollection.Clear() | Verwijdert alle elementen uit de collectie |
BaseWebExtensionCollection.Remove(index) | Verwijdert het item op de opgegeven index |
BaseWebExtensionCollection.GetEnumerator() | Retourneert een enumerator voor het itereren van de collectie |
BaseWebExtensionCollection.Count | Aantal elementen in de collectie |
TaskPaneCollection | Concrete BaseWebExtensionCollection van TaskPane items |
WebExtensionBindingCollection | Concrete BaseWebExtensionCollection van WebExtensionBinding items |
WebExtensionPropertyCollection | Concrete BaseWebExtensionCollection van WebExtensionProperty items |
WebExtensionReferenceCollection | Concrete BaseWebExtensionCollection van WebExtensionReference items |