Tengo una aplicación MEF (Microsoft Extension Framework) que carga algunos ensambles desde una carpeta. Necesito enumerar los ensamblados que produjeron exportaciones para mi aplicación.¿Cómo enumerar ensamblajes dentro de AggregateCatalog o DirectoryCatalog en MEF?
Una forma de hacerlo es enumerando las importaciones llamando al GetExportedObject().GetType().Assembly
. Pero sería más limpio hacer esto sin instanciar las importaciones. ¿Hay alguna manera de obtener ensamblajes cargados desde un catálogo o cualquier otra cosa?
Necesito asambleas para obtener sus atributos como copyright, versión, nombre y tal. Mi carpeta puede contener tanto ensamblados con exportaciones como sin ellos, pero solo necesito ensamblajes que satisfagan cualquier importación en la aplicación.
He actualizado la pregunta sobre por qué necesito los ensamblajes. En realidad, incluso si DirectoryCatalog devuelve los ensamblajes no resolvería mi objetivo porque la lista podría contener dll de MEF que no tienen nada que ver con _my_ imports. Si pudiera obtener el ensamblado de Export sin llamar al GetExportedObject, o tener los ensambles de importaciones satisfechas de alguna otra manera ... –
Agregaré que necesito este mismo tipo de funcionalidad.Me estoy integrando con otro sistema que usa BuildManager y quiero agregar ensamblajes que estoy usando con MEF para BuildManager. –