Clases de Colección de Extensiones Web
Clases de colección de Web-Extension
Esta guía muestra cómo las cuatro clases de colección de extensiones web en Aspose.Words FOSS para .NET — TaskPaneCollection, WebExtensionBindingCollection, WebExtensionPropertyCollection, y WebExtensionReferenceCollection — comparten un único contrato de colección a través de la clase abstract BaseWebExtensionCollection clase base. Para lo que los paneles de tareas, enlaces y propiedades de extensiones web realmente representan, consulte la Extensiones web guía; esta página cubre solo el contenedor API que todos comparten.
BaseWebExtensionCollection: Un contrato, cuatro colecciones
BaseWebExtensionCollection es la clase base para TaskPaneCollection, WebExtensionBindingCollection, WebExtensionPropertyCollection y WebExtensionReferenceCollection. Implementa IEnumerable<T> y define cada miembro que estas cuatro colecciones concretas exponen — ninguna de las cuatro subclases declara métodos o propiedades adicionales propias más allá de lo que proporciona la clase base.
Agregar, eliminar y contar elementos
Add(item) agrega el elemento especificado a la colección. Clear() elimina todos los elementos. Remove(index) elimina el elemento en el índice especificado — recibe un index posicional, no una referencia al elemento, por lo que eliminar un elemento específico implica primero localizar su índice. Count informa el número de elementos que hay actualmente en la colección.
Enumerar una colección
GetEnumerator() devuelve un enumerador que puede iterar a través de la colección, de modo que cualquier colección derivada de BaseWebExtensionCollection admite un bucle foreach sobre sus elementos sin código de iteración específico de tipo.
Consejos y Mejores Prácticas
- Porque las cuatro colecciones comparten el mismo contrato base, el código escrito contra los miembros
Add,Clear,Remove,CountyGetEnumeratordeBaseWebExtensionCollectionfunciona de manera uniforme enTaskPaneCollection,WebExtensionBindingCollection,WebExtensionPropertyCollectionyWebExtensionReferenceCollection. Remove(index)recibe un índice posicional — si solo tienes el propio elemento, recorre la colección para encontrar su índice primero, o registra el índice en el momento de la inserción.- Lee
Countantes de iterar, oforeachdirectamente sobre la colección conGetEnumerator()en lugar de indexar manualmente, ya que el contrato base no expone un getter posicional. - Llama a
Clear()cuando necesites restablecer una colección en lugar de llamar repetidamente aRemovedentro de un bucle.
Problemas Comunes
| Problema | Causa | Corregir |
|---|---|---|
Remove no acepta el propio elemento | Remove(index) en colecciones derivadas de BaseWebExtensionCollection toma un índice posicional, no una referencia | Encuentra primero el índice del elemento (por ejemplo mientras lo enumeras), luego llama a Remove(index) |
| Iterar una de las cuatro colecciones parece duplicado entre tipos | Cada colección es un tipo concreto separado, pero todas comparten los miembros de BaseWebExtensionCollection | Escribe la lógica de iteración o utilidad compartida una sola vez sobre los miembros Add, Clear, Remove, Count y GetEnumerator comunes a los cuatro |
| Unsure which concrete collection type a piece of code needs | Las cuatro colecciones se exponen desde diferentes propiedades en WebExtension y Document | Consulta el Web Extensions guía para saber qué propiedad devuelve qué tipo de colección |
FAQ
¿Por qué las cuatro colecciones de extensiones web se comportan de la misma manera?
Todas derivan de la misma clase base abstracta, BaseWebExtensionCollection, que define Add, Clear, Remove, Count y GetEnumerator — ninguno de los cuatro subclases agrega sus propios miembros.
¿Cómo elimino un elemento específico de una de estas colecciones?
Llame a Remove(index) con el índice posicional del elemento — localice el índice enumerando la colección primero si solo tiene la referencia del elemento.
¿Puedo iterar cualquiera de estas cuatro colecciones de la misma manera?
Sí — los cuatro implementan IEnumerable<T> a través de BaseWebExtensionCollection, por lo que GetEnumerator() / foreach funciona idénticamente en todos ellos.
¿Dónde puedo aprender qué representa realmente un elemento WebExtensionBinding o TaskPane?
Ver el Extensiones web guía — esta página cubre solo el comportamiento del contenedor de colección compartido, no los objetos de dominio que contienen las colecciones.
Resumen de API Reference
| Clase/Método | Descripción |
|---|---|
BaseWebExtensionCollection | Clase base abstracta compartida por los cuatro tipos de colección de web-extension |
BaseWebExtensionCollection.Add(item) | Agrega un elemento a la colección |
BaseWebExtensionCollection.Clear() | Elimina todos los elementos de la colección |
BaseWebExtensionCollection.Remove(index) | Elimina el elemento en el índice especificado |
BaseWebExtensionCollection.GetEnumerator() | Devuelve un enumerador para iterar la colección |
BaseWebExtensionCollection.Count | Número de elementos en la colección |
TaskPaneCollection | Concreto BaseWebExtensionCollection de TaskPane elementos |
WebExtensionBindingCollection | Concreto BaseWebExtensionCollection de WebExtensionBinding elementos |
WebExtensionPropertyCollection | Concreto BaseWebExtensionCollection de WebExtensionProperty elementos |
WebExtensionReferenceCollection | Concreto BaseWebExtensionCollection de WebExtensionReference elementos |