c# .net mef catalog system.componentmodel

c# - ¿Qué es AggregateCatalog?



.net mef (2)

Mef tiene una pequeña curva de aprendizaje: vaya una vez a través de los documentos en mef.codeplex.com. O prueba screencast si estás realmente presionado por el tiempo.

La idea es que un catálogo es un diccionario de partes exportadas (objetos a inyectar) o partes que necesitan importaciones (que necesitan objetos inyectados). El catálogo se puede rellenar de varias maneras (de ahí las derivaciones del Catálogo ) - desde un Directorio (todo asm en un directorio) o un ensamblaje específico.

A continuación, puede crear un catálogo compuesto; por ejemplo, desea crear un diccionario único que contenga todos los objetos exportados desde DirA y desde este ensamblaje específico ubicado en DirB. En este caso, puede crear catálogos individuales y luego un catálogo compuesto que combina los dos. Ahora consume este diccionario combinado en su código para solicitar importaciones / exportaciones.

¿Qué es AggregateCatalog ? ¿Qué significa cuando construyes un new AggregateCatalog() ? ¿Qué significa cuando agrega ensamblados al catálogo, por ejemplo, catalog.Catalogs.Add(new AssemblyCatalog(someAssembly)) ? Aparte de los ensamblajes, ¿qué puede agregar al catálogo? cualquier conocimiento general relacionado con esto también sería útil (soy un noob total)


AggregateCatalog en MEF básicamente le permite recopilar múltiples catálogos de extensiones. Cuando llama al new AggregateCatalog() , básicamente crea una instancia de una nueva colección de catálogo (no necesariamente rellenada) que puede contener varias instancias de ComposablePartCatalog, que puede contener varias partes.

Considera que es una clase que te ayuda a recolectar partes de varios conjuntos.

Los ensamblajes son solo una forma de enviar partes a la aplicación de llamada. Puede pasar piezas directamente desde el interior del conjunto existente.

Para más información sobre catálogos, recomendaría leer this .