Web-Extension-samlingsklasser
Web-Extension-samlingsklasser
Den här guiden visar hur de fyra webbläsartilläggssamlingsklasserna i Aspose.Words FOSS för .NET — TaskPaneCollection, WebExtensionBindingCollection, WebExtensionPropertyCollection, och WebExtensionReferenceCollection — delar ett enda samlingsavtal via den abstrakta BaseWebExtensionCollection basklassen. För vad uppgiftspaneler, bindningar och webbläsartilläggsegenskaper faktiskt representerar, se Web Extensions guiden; den här sidan täcker endast den gemensamma API de alla delar.
BaseWebExtensionCollection: Ett kontrakt, fyra samlingar
BaseWebExtensionCollection är basklassen för TaskPaneCollection, WebExtensionBindingCollection, WebExtensionPropertyCollection och WebExtensionReferenceCollection. Den implementerar IEnumerable<T> och definierar varje medlem som dessa fyra konkreta samlingar exponerar — ingen av de fyra underklasserna deklarerar egna ytterligare metoder eller egenskaper utöver vad basklassen tillhandahåller.
Lägga till, ta bort och räkna objekt
Add(item) lägger till det angivna objektet i samlingen. Clear() tar bort alla element. Remove(index) tar bort objektet på det angivna indexet — den tar ett positions-index, inte en objektreferens, så att ta bort ett specifikt objekt innebär först att hitta dess index. Count rapporterar antalet element som för närvarande finns i samlingen.
Enumerera en samling
GetEnumerator() returnerar en enumerator som kan iterera genom samlingen, så varje BaseWebExtensionCollection-deriverad samling stödjer en foreach loop över sina objekt utan typ-specifik itereringskod.
Tips och bästa praxis
- Eftersom alla fyra samlingarna delar samma grundkontrakt fungerar kod skriven mot
BaseWebExtensionCollectionsAdd,Clear,Remove,CountochGetEnumerator-medlemmar enhetligt överTaskPaneCollection,WebExtensionBindingCollection,WebExtensionPropertyCollectionochWebExtensionReferenceCollection. Remove(index)tar ett positionsindex — om du bara har själva objektet, enumerera samlingen för att först hitta dess index, eller spåra indexet vid insättningsögonblicket.- Läs
Countinnan du itererar, ellerforeachöver samlingen direkt medGetEnumerator()istället för att indexera manuellt, eftersom grundkontraktet inte exponerar en positionshämtare. - Anropa
Clear()när du behöver återställa en samling istället för att upprepade gånger anropaRemovei en loop.
Vanliga problem
| Problem | Orsak | Fixa |
|---|---|---|
Remove accepterar inte själva objektet | Remove(index) på BaseWebExtensionCollection-avledda samlingar tar ett positionsindex, inte en referens | Hitta först objektets index (t.ex. vid uppräkning), sedan anropa Remove(index) |
| Iterering av en av de fyra samlingarna känns duplicerad över typerna | Varje samling är en separat konkret typ, men de delar alla BaseWebExtensionCollections medlemmar | Skriv delad iterering eller verktygslogik en gång mot medlemmarna Add, Clear, Remove, Count och GetEnumerator som är gemensamma för alla fyra |
| Osäker på vilken konkret samlingstyp en koddel behöver | De fyra samlingarna exponeras från olika egenskaper på WebExtension och Document | Kontrollera Webbläsartillägg guide för vilken egenskap som returnerar vilken samlingstyp |
FAQ
Varför beter de fyra web-extension-samlingarna sig på samma sätt?
De härstammar alla från samma abstrakta basklass, BaseWebExtensionCollection, som definierar Add, Clear, Remove, Count och GetEnumerator — ingen av de fyra subklasserna lägger till egna medlemmar.
Hur tar jag bort ett specifikt objekt från en av dessa samlingar?
Anropa Remove(index) med objektets positionsindex — lokalisera indexet genom att enumerera samlingen först om du bara har objektreferensen.
Kan jag iterera någon av dessa fyra samlingar på samma sätt?
Ja — alla fyra implementerar IEnumerable<T> via BaseWebExtensionCollection, så fungerar GetEnumerator() / foreach identiskt över dem.
Var kan jag lära mig vad ett WebExtensionBinding- eller TaskPane-objekt faktiskt representerar?
Se Webbläsartillägg guide — den här sidan täcker endast beteendet för den delade samlingsbehållaren, inte domänobjekten som samlingarna innehåller.
API Reference Sammanfattning
| Klass/Metod | Beskrivning |
|---|---|
BaseWebExtensionCollection | Abstrakt basklass som delas av alla fyra webbläsartilläggssamlingstyper |
BaseWebExtensionCollection.Add(item) | Lägger till ett objekt i samlingen |
BaseWebExtensionCollection.Clear() | Tar bort alla element från samlingen |
BaseWebExtensionCollection.Remove(index) | Tar bort objektet på det angivna indexet |
BaseWebExtensionCollection.GetEnumerator() | Returnerar en enumerator för att iterera samlingen |
BaseWebExtensionCollection.Count | Antal element i samlingen |
TaskPaneCollection | Konkreta BaseWebExtensionCollection av TaskPane objekt |
WebExtensionBindingCollection | Konkreta BaseWebExtensionCollection av WebExtensionBinding objekt |
WebExtensionPropertyCollection | Konkreta BaseWebExtensionCollection av WebExtensionProperty objekt |
WebExtensionReferenceCollection | Konkreta BaseWebExtensionCollection av WebExtensionReference objekt |