47得票2回答
为什么MVC4使用服务定位器反模式?

阅读了Mark Seemann的《.NET中的依赖注入》之后,我远离了反模式服务定位器。 阅读了MVC 4版本发布说明后,我看到: 通过DependencyResolver改进了控制反转(IoC): Web API现在使用MVC的依赖解析器实现的服务定位器模式来获取许多不同设施的实例。 ...

47得票2回答
MEF和IoC容器(如Unity、Autofac、SMap、Ninject、Windsor.Spring.net等)之间的区别

我一直在搜索依赖注入并阅读了一些文章,但是我仍然无法找到MEF和其他IoC之间的区别。因此,我的问题是:在哪种情况下应该使用MEF或IoC容器? 为什么在PRISM(WPF&Silverlight)或桌面应用程序中使用MEF很好? 而在Web应用程序中人们使用IoC容器。 那么,决定使用...

46得票8回答
IoC.Resolve与构造函数注入的区别

我听到很多人说使用IoC.Resolve()是一种不好的实践,但我从未听到过一个好的原因(如果这与测试有关,那么你只需要模拟容器即可)。 现在使用Resolve而不是构造函数注入的优点是您不需要创建具有5个构造函数参数的类,每当您要创建该类的实例时,您都不需要为其提供任何内容。

44得票9回答
无法摆脱“物理连接不可用”异常。

我快要自杀了。花费了几个星期尝试解决这个问题。我们有一个使用SQL Server 2012和Entity Framework作为ORM以及Unity进行IoC的ASP.NET MVC 4 Web应用程序。Web应用程序托管在Amazon EC2上。我开始收到“物理连接不可用”的异常。这种情况每...

44得票4回答
指定Unity IoC容器使用的构造函数

我正在使用Unity IoC容器来解析我的对象。然而,我遇到了一个问题。当我有多个构造函数时,Unity如何知道要使用哪一个?当我有一个带参数和一个不带参数的构造函数时,它似乎会使用带参数的那个构造函数。我能否明确告诉它要使用哪个构造函数? 具体来说,我有一个类Person,它有两个构造函数...

44得票9回答
为什么在动态语言中不需要IOC容器

在Herding Code播客第68期中,http://herdingcode.com/herding-code-68-new-year-shenanigans/有人声称,在Python或Javascript中没有使用IOC容器的地方,或类似这样的说法。我认为这是传统智慧,并且适用于所有动态语...

42得票3回答
@PostConstruct 注释和Spring生命周期

我是初学者,想了解Spring: 我有一个Java类被注释为@Component(Spring),里面有一个被注释为@PostConstruct的方法。该类然后由另一个类中被注释为@Autowired的字段引用。我可以假设只有在调用@PostConstruct后才会注入该类吗?@Compon...

42得票1回答
Castle Windsor - 针对开放式泛型接口的IoC注册?

Castle Windsor允许注册开放式泛型接口吗?还是我需要分别注册每个可能的类型实例? 例如,如果我使用类型T和Z,则以下内容将在编译时失败,除非我分别使用强类型指定T和Z。 container.Register(Component .For<IAdapterFa...

41得票1回答
哪种IoC容器与Prism.Forms更兼容?

我正在开始一个新的Prism.Forms项目,想知道各种不同的IoC容器(Autofac, Dryloc, Ninject或Unity)中哪一个最适合前进。 我不知道这是否正确,但我在某处读到过,Unity不再处于活跃开发状态,因此,由于这和MEF是我曾经使用过的唯一IoC容器,我不确定它是...

39得票2回答
在使用IoC容器时,原始构造函数参数是否是一个不好的想法?

标准新手免责声明:我对IoC不熟悉,收到了一些混乱的信号。请为以下情况提供一些指导。 假设我有以下接口和实现: public interface IImageFileGenerator { void RenameFiles(); void CopyFiles(); } p...