- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我计划在 ASP.NET 中使用 MEF,以深入了解 CompositionContainer 的线程安全性。
我的第一种方法将不同的 CompositionContainer 与每个请求相关联,但我担心这会很昂贵并且不能很好地扩展,另一方面,CompositionContainer 通过构造函数中的一个简单标志支持线程安全操作。
我还考虑了混合方法,我可能会使用线程安全的静态 CompositionContainer 和一个与每个请求相关联的方法。
除了线程安全参数,我非常依赖 ExportFactory 来根据需要构造对象。尽管如此,我仍然被这个 ExportLifeTimeContext 事情困扰,我不确定这种方法的资源需求。
有人对此有所了解吗?
最佳答案
创建 CompositionContainers 很便宜,所以为每个请求创建一个应该没问题。创建目录并不便宜,但目录是线程安全的,因此您应该能够在启动时创建一个全局目录并为每个请求使用它。
需要注意的一件事是,即使是“线程安全”的组合容器对于可能导致重新组合的操作也不是线程安全的,例如更改目录或调用容器上的 Compose 方法。
至于混合方法,如果您希望在请求之间共享某些部分(应该是线程安全的)和希望特定于请求的某些部分,那么您将采用该方法。在这种情况下,只需要将共享容器创建为线程安全的。
关于mef - 线程安全和 MEF CompositionContainer,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3246581/
我遇到了以下问题: var catalog = new AggregateCatalog(); catalog.Catalogs.Add(new AssemblyCatalog(typeof(Type
我计划在 ASP.NET 中使用 MEF,以深入了解 CompositionContainer 的线程安全性。 我的第一种方法将不同的 CompositionContainer 与每个请求相关联,但我
在 WCF 服务项目中,我为 MEF CompositionContainer 创建了一个简单的包装器以简化其实例化: internal class CompositionProxy { pr
我一直在为基于 Web 的应用程序使用 Windsor IoC 容器,以解析应用程序应使用的数据访问层实现。 Web 应用程序的 UI 将由页面组成,每个页面由称为 portlet 的小单元组成。 (
我有一个基于 MEF 的解决方案,它有一个接口(interface)的多个导出实现。 我想做的是有一个开关,可以删除所有 与接口(interface)关联的当前部分,并在它们的位置上,仅用一个实现替换
基于此问题的答案What's the difference between CompositionBatch and catalogs?其中指出,在对象由其他组件构建的情况下,组合批处理的使用非常有用
到目前为止,我在 MEF 中遇到的最大问题是,当我在我的插件加载器包装器中组合部件时,当它发现其中一个程序集的导入解析问题时完全加载。理想情况下,我希望 ComposeParts 表现出某种“忽略并继
我是一名优秀的程序员,十分优秀!