gpt4 book ai didi

dependency-injection - MEF 和 IoC 容器之间的区别(如 Unity、Autofac、SMap、Ninject、Windsor.Spring.net 等)

转载 作者:行者123 更新时间:2023-12-03 06:24:49 25 4
gpt4 key购买 nike

我一直在搜索依赖注入(inject)并阅读了一些文章。但我仍然无法找出 MEF 和其他 IoC 之间的区别。所以,我的问题是:在哪种情况下我应该更喜欢使用 MEF 或 IoC 容器?

为什么将 MEF 与 PRISM 结合使用(WPF 和 Silverlight)或桌面应用程序会很好?

而在 Web 应用程序中,人们使用 IoC 容器。

那么,决定我应该使用哪种依赖技术的标准是什么?

我已经浏览过这篇文章http://devlicio.us/blogs/casey/archive/2009/12/18/what-is-the-difference-between-an-ioc-container-and-mef.aspx ,但我无法确定任何事情。

最佳答案

最终我对 MEF 与 IoC 容器的结论如下:

当必须处理未知类型或基于插件的架构时,首选使用 MEF。

IoC 容器最好与已知类型一起使用。

此外,MEF是依赖注入(inject)的架构解决方案

而 IoC 容器是依赖注入(inject)的代码级解决方案。

IoC 容器只是依赖注入(inject)技术,它填充类的实例,如果这些类的构造函数需要其他类的对象,那么 IoC 也会注入(inject)所需的对象。但 MEF 所做的不仅仅是依赖注入(inject)。虽然,MEF 也使用基于 IoC 的方法进行依赖注入(inject),但除了依赖注入(inject)之外,MEF 还做了很多其他事情。

MEF 有两个组件:

  1. Catalog:负责发现扩展

  2. 容器:提供将扩展加载到正在运行的程序的能力应用

MEF 不仅仅是依赖注入(inject)技术。它用于我们的应用程序需要基于插件的架构,但同时 MEF 使用基于 IoC 的方法进行依赖项注入(inject)。

我期待更多人对此发表评论。

关于dependency-injection - MEF 和 IoC 容器之间的区别(如 Unity、Autofac、SMap、Ninject、Windsor.Spring.net 等),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15572302/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com