在MEF中使用共享和非共享创建策略时使用子容器?

时间:2012-01-11 00:24:22

标签: c# .net mef

所以我遇到了一个问题,我的长时间运行过程在内存中变得非常大。在获得了堆栈转换并查看堆后,我注意到我使用的组合容器变得相当大。我正在使用静态容器,我认为我的所有作品都被标记为共享但是我可能错过了一些...

但是这让我研究了如何处理共享和非共享之间的这种关系,我注意到很多时候人们使用子容器来满足进口,然后进行处理以使其不会变大。所以我沿着这条路走下去找到了这个方便的家伙 http://mef.codeplex.com/wikipage?title=Filtering%20Catalogs

根据共享和非共享导出创建过滤目录...

我遇到的问题是,在满足导入共享导入的对象时,我得到拒绝异常...所以如果我这样做

NonSharedChildContainer.SatisfyImportsOnce(someObject)

我得到一个拒绝异常,因为那里有一个属性,它有一个共享导入...看起来如果你有一个包含共享导入和非共享导入的对象,那么就没有办法在这种格式带有子容器?

我唯一想到的就是 1)浏览我的代码并使用GetExport而不是satisfimports 2)我可能会超载MEF,因为我有点使用它作为我们的Io​​C容器,我知道总是有很多讨论......所以最好只使用Unity或类似的东西

0 个答案:

没有答案