c# - Ninject - 类库项目中静态类中的内核

标签 c# dependency-injection inversion-of-control ninject

我和Ninject - Kernel in static class?有同样的问题 但我没有使用 WCF,只使用了一个类库。

拥有一个静态内核更好,还是随时实例化它更好? 我的 UI(现在在 MVC 应用程序中)使用该服务,那么它会调用静态内核吗? 什么是最好的方法?

最佳答案

使用 IoC 时,首选方法是尽可能少地使用内核。应该在初始化时使用它来连接所有内容,然后快速安静地淡入背景。因此,在应用“好莱坞原则”的地方:“不要调用 IoC 容器,让它调用你!”。包含内核的静态类就是所谓的服务定位器反模式,请参阅 here .

简而言之:您将希望使用构造函数注入(inject)来注入(inject)依赖项,而不是每次都创建内核或引用静态类。

关于c# - Ninject - 类库项目中静态类中的内核,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11722175/

相关文章:

c# - 如何正确更新对象列表?

c# - 仅将处理程序上下文自定义为类名称

workflow - 如何将控制权交给调用方法

Java 从现有依赖项调用未知代码或方法

java - 如何使用Spring框架将同一个类的2个实例注入(inject)另外2个不同的类?

c# - 当一个从 DBContextBase 读取而另一个从 DomainDBContext 读取时,从 2 个不同项目中的类访问 DBContext

c# - 在不修改包含该方法的代码文件的情况下向方法添加属性?

c# - 将字符串拆分为无分隔符的数组

asp.net-core - 如何在 ASP.NET Core 3.1 中使用简单注入(inject)器进行依赖交换以进行集成测试

angular - 以 Angular 6+ 向指定模块注入(inject)服务