J'utilise MEF pour créer plusieurs instances de la même exportation.Suivi d'instances créées par un conteneur MEF
Je voudrais garder une trace des exemples que je l'ai créé, et je suis soit Interrogation le conteneur ou en utilisant une collection recomposited, mais je ne reçois mes instances ...
Voici le code:
interface IFoo{};
[Export(typeof(IFoo)),PartCreationPolicy(CreationPolicy.NonShared)]
class Foo{};
class FooTracker{
CompositionContainer _container;
int HowManyValues()
{
// this always returns 1 and invokes a constructor
return _container.GetExportedValue<IFoo>().Count();
}
int HowManyExports(){
// idem
return _container.GetExports<IFoo>().Count();
}
// idem
[ImportMany(AllowRecomposition=true,AllowRecomposition=true)]
protected IEnumerable<IFoo> Foos { get; set; }
}
Ce que je voudrais, c'est obtenir les instances déjà existantes, ne pas en créer une nouvelle s'il n'y en a pas.
Merci, Florian
+1 Ding ding. Rendre votre IFooTracker statique et IDisposable pour nettoyer les enregistrements, mais c'est la façon dont vous gardez la trace des instances de quoi que ce soit. –