【发布时间】:2014-02-05 10:40:12
【问题描述】:
我的问题实际上是这里发布的一个老问题的重复: Ninject 2.2 multiple bindings
似乎有人要在 2011 年处理这个问题。有谁知道是否有办法在 Ninject 中关闭此类警告?或者其他一些解决方法?
编辑
针对@BatteryBackupUnit,这是我的确切问题:
我有多个库...在我的核心库中,我执行以下操作:
- 查找宿主应用程序(包括宿主)引用的所有程序集
- 从所有这些程序集中查找从
IDependency继承的所有类型。 - 自动将所有这些注册为瞬态
然后从另一个库(主机应用程序可能会或可能不会引用),我有这个:
Kernel.Bind<IDbContextFactory>().To<DbContextFactory>().InSingletonScope();
这里的IDbContextFactory 也是一个IDependency,所以它已经被核心库加载了,现在我在这里注册它,但范围不同(单例)。
根据经验(并且之前已经测试过),我知道这在 Autofac 中没有问题,但是 Ninject 给了我关于已经注册它的错误消息。
理想情况下,最好只覆盖任何以前的注册...“级联样式”(因为缺少更好的短语)..
【问题讨论】:
-
据我所知,你不能做“覆盖注册级联样式”——至少不容易。但是我想知道
IDependency的价值是什么。这个接口是干什么用的?我怀疑您可以通过使用不同的设计轻松解决挑战 - 而不会使整个软件复杂化。
标签: asp.net-mvc ninject ninject-3