1
我正在使用MEF創建相同導出的多個實例。由MEF容器創建的跟蹤實例
我想跟蹤我已經創建的實例,而我無論是查詢容器或使用recomposited集合,但我從來沒有我的情況下...
下面的代碼:
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; }
}
我想得到的是已經存在的實例,如果沒有創建新實例,則不會創建新實例。
感謝, 弗洛裏安
+1丁丁。讓你的IFooTracker靜態和IDisposable清理註冊,但這是你跟蹤任何事情的方式。 – 2010-08-12 18:35:44