Kephas 有自己的依赖注入容器。为什么使用另一个框架,为什么不使用现有的框架?

Kephas has its own dependecy injection container. Why another framework, why not use an existing one?

这几天在看Kephas框架的时候,我注意到它提供了自己的依赖注入容器。现在市面上的依赖注入框架那么多,为什么要自带实现呢?这不就是重新发明轮子吗?

Kephas 本身不提供 DI/IoC 容器,它仅在 DI/IoC 容器之上提供了一个抽象层,因此它可以使用组合本身而不必绑定到特定的实现。它确实为 Kephas.Composition.Mef 包 (https://www.nuget.org/packages/Kephas.Composition.Mef/) 中的 System.Composition 这个抽象层提供了一个适配器。我们还为 Autofac 计划了一个适配器,但我们没有时间实施它以结束。

请注意,此抽象层确实具有 Kephas 独有的一些功能:

  • 注册的服务实现可能会被覆盖,以利用分层应用程序架构。
  • 服务contracts/interfaces通过[*AppServiceContract]属性驱动注册。

另请注意,元数据支持是 Kephas 集成的 DI 框架所必需的功能,在某些情况下,这可能会施加限制。如需更多信息,您可以在此处阅读:https://github.com/kephas-software/kephas/wiki/Composition-and-Dependency-Injection.