据我了解,MEF CompositionContainer 创建并保留类的实例。我不知道在什么情况下 CompositionContainer 的内部会有一个类实例。
- 任何人都可以列出对 CompositionContainer 执行的操作或 CompositionContainer 类的方法,这些操作导致 CompositionContainer 在 CompositionContainer 中存储类的实例。
- 是否可以在调试器或任何其他方式中查看 CompositionContainer 中保存的类实例?
CompositionContainer 将在 CompositionContainer 的生命周期内保留对所有共享部分的引用。 (对于导入和导出,默认的 CreationPolicy 都是 Any,这意味着除非另有指定,否则默认情况下所有部件都将被共享。)
如果该部件实现了 IDisposable,则将保留对非共享部件的引用。当从容器中提取的根导出被释放时(如果该导出来自非共享部分),该引用将被释放。对于使用 ExportFactory 创建的导出,可以通过调用 CompositionContainer.ReleaseExport 或 ExportLifetimeContext.Dispose 来释放导出。
我认为没有任何简单的方法可以查看 CompositionContainer 所保存的内容。源代码是可用的,因此理论上您可以深入研究它并找出它的确切存储位置。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)