Disons que j'ai une solution avec 4 projets:« Impossible de charger un ou plusieurs des types demandés » tout en utilisant un contrat dans un projet distinct
- Namespace.Contracts - contient l'interface IContract
- Namespace. Plugin.A - contient une implémentation de classe A - IContract. Classe A est exporté à l'aide
- MEF Namespace.App - application qui importe les classes IContract de différents endroits, y compris l'assemblage de Plugin.A
Je reçois « Impossible de charger un ou plusieurs des types demandés » exception d'exécution lors de la composition dans le projet 3 - MEF se plaint que le type IContract ne peut pas être trouvé dans Namspace.App ... pourquoi le cherche-t-il dans cet espace de noms et non Namespace.Contracts? Si je déplace l'espace de noms IContract vers le projet Namespace.App, cela fonctionne ... qu'est-ce qui me manque? Comment devrais-je composer les pièces?
L'échec de l'ajout d'un assembly au conteneur ne provoque pas l'erreur ReflectionTypeLoadException décrite. C'est un autre type d'échec. –
Notez également que votre méthode ne détectera pas les assemblages dans le répertoire des exécutables autres que l'exe lui-même (sauf si vous avez "." Dans "addinDirectories"). –
@Wim, c'est ce que j'ai écrit dans la dernière ligne, le répertoire d'exécution. Et c'est l'erreur que j'obtiens normalement, quand MEF ne peut pas trouver une exportation requise. –