Je ne le fais vraiment pas fonctionner.MEF - Comment puis-je utiliser un ExportProvider pour sélectionner un seul Export
disons que j'ai quelques classes avec la même interface que je veux exporter.
[Export(typeof(IService))]
[ExportMetadata("ExportType", typeof(Service1))]
public class Service1 : IService
{...}
[Export(typeof(IService))]
[ExportMetadata("ExportType", typeof(Service2))]
public class Service2 : IService
{...}
[Export(typeof(IService))]
[ExportMetadata("ExportType", typeof(Service3))]
public class Service3 : IService
{...}
maintenant j'ai une classe qui importe le service IS et cette classe n'a pas d'importance quel service il est. Ce que j'essaye de réaliser maintenant est de construire un ExportProvider qui sélectionne le bon Export sur Composer.
Quelque chose comme ceci:
public TypeExportProvider<TTypeToExport>() : ExportProvider
{}
je ne sais vraiment pas comment le
protected override IEnumerable<Export> GetExportsCore(ImportDefinition definition, AtomicComposition atomicComposition)
devrait ressembler. peut-être que quelqu'un connaît un blog à lire à ce sujet. il y a beaucoup d'échantillons exportProvider personnalisés mais pas pour cette situation.
thx
marqué comme réponse car il résout mon problème. – blindmeis
Si je comprends votre question, j'ai un problème similaire ici: http://stackoverflow.com/questions/9626227/how-to-manage-discovery-and-composition-as-2-separate-concerns Dans mon cas particulier , Je veux interroger pour une exportation lorsque certains paramètres d'entrée sont fournis pour le paramètre constructeur à injecter. – IAbstract