Я использую MEF для создания нескольких экземпляров одного и того же экспорта.
Я бы хотел отслеживать созданные мной экземпляры и либо запрашиваю контейнер, либо использую перекомпонованную коллекцию, ноЯ никогда не получаю свои экземпляры ...
Вот код:
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; }
}
Я хотел бы получить уже существующие экземпляры, а не создавать новые, если их нетлюбой.
Спасибо, Флориан