J'ai une application MEF (Microsoft Extension Framework) qui charge certains assemblages à partir d'un dossier. J'ai besoin d'énumérer les assemblages qui ont produit des exportations pour mon application.Comment énumérer des assemblys dans AggregateCatalog ou DirectoryCatalog dans MEF?
Une façon de le faire est d'énumérer les importations appelant GetExportedObject().GetType().Assembly
. Mais il serait plus propre de le faire sans instanciation des importations. Existe-t-il un moyen d'obtenir des assemblys chargés à partir d'un catalogue ou d'autre chose?
J'ai besoin d'assemblys pour obtenir leurs attributs tels que copyright, version, nom et autres. Mon dossier peut contenir à la fois des assemblys avec des exports et ceux qui ne le sont pas, mais je n'ai besoin que d'assemblys qui satisfassent les imports dans l'application.
J'ai mis à jour la question sur pourquoi j'ai besoin des assemblages. En fait, même avoir DirectoryCatalog retourner les assemblées ne résoudrait pas mon objectif car la liste pourrait contenir des dll MEF qui n'ont rien à voir avec _my_ imports. Si je pouvais obtenir l'assembly à partir d'Export sans appeler GetExportedObject, ou avoir les assemblages satisfaits d'importations d'une autre manière ... –
J'ajouterai que j'ai besoin de ce même genre de fonctionnalité.J'intègre un autre système qui utilise BuildManager et je veux ajouter des assemblages que j'utilise avec MEF à BuildManager. –