Web-bővítmény Gyűjtemény Osztályok
Webkiterjesztés Gyűjtemény Osztályok
Ez az útmutató bemutatja, hogyan működnek a négy webkiterjesztés-gyűjtemény osztály a Aspose.Words FOSS-ban a .NET számára — TaskPaneCollection, WebExtensionBindingCollection, WebExtensionPropertyCollection, és WebExtensionReferenceCollection — egyetlen gyűjtemény-szerződést osztanak meg az absztrakt BaseWebExtensionCollection alap osztály. Arról, hogy a feladatablakok, kötések és webkiterjesztés-tulajdonságok valójában mit jelentenek, lásd a Web Extensions útmutató; ez az oldal csak a közös API konténert fedi le.
BaseWebExtensionCollection: Egy szerződés, négy gyűjtemény
BaseWebExtensionCollection az alaposztály a TaskPaneCollection, WebExtensionBindingCollection, WebExtensionPropertyCollection és WebExtensionReferenceCollection számára. Implementálja a IEnumerable<T> és meghatározza az összes tagot, amelyet ezek a négy konkrét gyűjtemények közzétesznek — a négy alosztály egyike sem deklarál további saját metódusokat vagy tulajdonságokat a bázisosztály által biztosítottakon túl.
Elemek hozzáadása, eltávolítása és számlálása
Add(item) hozzáadja a megadott elemet a gyűjteményhez. Clear() eltávolítja az összes elemet. Remove(index) eltávolítja a megadott indexű elemet — pozíciós index-t vesz, nem elemhivatkozást, ezért egy konkrét elem eltávolítása először az indexének megtalálását jelenti. Count jelentést tesz a gyűjteményben jelenleg lévő elemek számáról.
Gyűjtemény felsorolása
GetEnumerator() egy enumerátort ad vissza, amely képes végigjárni a gyűjteményt, így bármely BaseWebExtensionCollection-ből származó gyűjtemény támogatja a foreach ciklust az elemein, típus-specifikus iterációs kód nélkül.
Tippek és bevált gyakorlatok
- Mivel a négy gyűjtemény ugyanazt az alapszerződést osztja meg, a
BaseWebExtensionCollectionAdd,Clear,Remove,CountésGetEnumeratortagjai ellen írt kód egységesen működik aTaskPaneCollection,WebExtensionBindingCollection,WebExtensionPropertyCollectionésWebExtensionReferenceCollectionesetén. Remove(index)egy pozíciós indexet vár — ha csak magát az elemet rendelkezésre áll, először járja be a gyűjteményt, hogy megtalálja az indexét, vagy nyomon kövesse az indexet a beszúráskor.- Olvassa be a
Countértékét iterálás előtt, vagyforeachközvetlenül a gyűjteményenGetEnumerator()segítségével a manuális indexelés helyett, mivel az alapszerződés nem biztosít pozíciós lekérdezőt. - Hívja a
Clear()függvényt, amikor egy gyűjteményt vissza kell állítani, ahelyett, hogy egy ciklusban ismételten hívná aRemovefüggvényt.
Gyakori problémák
| Probléma | Ok | Javítás |
|---|---|---|
Remove nem fogadja el magát az elemet | Remove(index) a BaseWebExtensionCollection-ből származó gyűjteményeken pozíciós indexet vesz, nem referenciát | Először találd meg az elem indexét (például felsorolás közben), majd hívd meg a Remove(index)-t |
| Az egyik négy gyűjteményen való iterálás duplikáltnak tűnik a típusok között | Minden gyűjtemény egy külön konkrét típus, de mindegyik megosztja a BaseWebExtensionCollection tagjait | Írj megosztott iterációs vagy segédlogikát egyszer a Add, Clear, Remove, Count és GetEnumerator közös tagokkal, amelyek mind a négyben megtalálhatók |
| Nem tudom, mely konkrét gyűjteménytípusra van szükség egy kódrészletben | A négy gyűjtemény a WebExtension és a Document különböző tulajdonságaiból érhető el | Ellenőrizze a Web Extensions Útmutató arról, hogy melyik tulajdonság melyik gyűjteménytípust adja vissza |
FAQ
Miért viselkednek ugyanúgy a négy web-extension gyűjtemény?
Mindegyik ugyanabból az absztrakt alaposztályból származik, BaseWebExtensionCollection, amely definiálja a Add, Clear, Remove, Count és GetEnumerator elemeket — a négy alosztály egyike sem ad hozzá saját tagot.
Hogyan távolíthatok el egy konkrét elemet ezek közül a gyűjtemények közül?
Hívja meg a Remove(index) függvényt az elem pozíciós indexével — ha csak az elem referenciája áll rendelkezésre, előbb enumerálja a gyűjteményt az index meghatározásához.
Iterálhatok bármelyik ezek közül a négy gyűjteményen ugyanúgy?
Igen — mind a négy megvalósítja a IEnumerable<T>-t a BaseWebExtensionCollection-ig, így a GetEnumerator() / foreach azonos módon működik mindegyiken.
Hol tanulhatom meg, hogy egy WebExtensionBinding vagy TaskPane elem valójában mit jelent?
Lásd a Web Extensions útmutató — ez az oldal csak a megosztott gyűjteménykonténer viselkedését tárgyalja, nem a gyűjtemények által tárolt domain objektumokat.
API Reference Összefoglaló
| Osztály/Módszer | Leírás |
|---|---|
BaseWebExtensionCollection | Absztrakt alaposztály, amelyet a négy web-kiterjesztés gyűjteménytípus közösen használ |
BaseWebExtensionCollection.Add(item) | Hozzáad egy elemet a gyűjteményhez |
BaseWebExtensionCollection.Clear() | Eltávolítja az összes elemet a gyűjteményből |
BaseWebExtensionCollection.Remove(index) | Eltávolítja a megadott indexnél lévő elemet |
BaseWebExtensionCollection.GetEnumerator() | Visszaad egy enumerátort a gyűjtemény bejárásához |
BaseWebExtensionCollection.Count | Az elemek száma a gyűjteményben |
TaskPaneCollection | Konkrét BaseWebExtensionCollection a TaskPane elem közül |
WebExtensionBindingCollection | Konkrét BaseWebExtensionCollection a WebExtensionBinding elem közül |
WebExtensionPropertyCollection | Konkrét BaseWebExtensionCollection a WebExtensionProperty elem közül |
WebExtensionReferenceCollection | Konkrét BaseWebExtensionCollection a WebExtensionReference elem közül |