dependency-injection - 将 Spring.Net IoC 替换为另一个容器(例如 Ninject)

标签 dependency-injection inversion-of-control ninject spring.net

我很想知道是否可以 替换 Spring.Net 带有 Ninject 的内置 IoC 容器。我们在我的团队中将 Ninject 用于其他项目中的 IoC,因此如果可能的话,我想继续使用该容器。

这可能吗?有没有人写过 Ninject-Spring.Net 适配器?

编辑

我喜欢 Spring.Net 包的许多部分(数据访问、事务等),但我不太喜欢依赖注入(inject)容器。我想用 Ninject 替换它

谢谢

最佳答案

我无法具体谈论如何将 Spring.NET 转换为 Ninject,但总的来说,所有应用程序代码都应该写成 DI 容器无关 .

考虑 DI 容器的最佳方式是 Hollywood Principle .在 DI 术语中,它变为 不要调用 DI Container,它会调用你 .

换句话说,DI 的最佳应用是使用简单的模式,例如 。构造函数注入(inject) 抽象工厂 .

大多数值得一提的 DI 容器本质上都理解这些模式,因此不需要特殊的、特定于 DI 容器的跳过箍。

这也意味着理想情况下,您应该只在应用程序的单个文件中包含特定于 DI 容器的代码。这个地方叫做作文根 ,这就是 DI 容器连接整个对象图并让路的地方。

如果您遵循这一原则,您可以轻松地将一个 DI Container 换成另一个。

以下帖子有更多详细信息:

  • Where should I do Injection with Ninject 2+ (and how do I arrange my Modules?)
  • Design - Where should objects be registered when using Windsor
  • 关于dependency-injection - 将 Spring.Net IoC 替换为另一个容器(例如 Ninject),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2038531/

    相关文章:

    java - 线程内的 Guice 注入(inject)器

    entity-framework - 每次使用都需要创建/处理的项目的依赖注入(inject)

    c# - 如何在运行时使用 Ninject 的 DI 动态添加新绑定(bind)?

    c# - DbContext 已在自定义 RoleProvider 中处置

    asp.net-mvc - Ninject依赖注入(inject): Read bindings from config?

    javascript - 为什么我们在数组和函数中注入(inject)参数

    architecture - 领域驱动设计中的层

    wcf - 将依赖项注入(inject) IAuthorizationPolicy

    c# - NLog 找不到或加载配置文件

    java - Dagger 2 : How to use @Inject in a JUnit test?