我的问题实际上是在这里发布的一个老问题的重复: Ninject 2.2 multiple bindings
似乎有人要在 2011 年处理这个问题。有谁知道是否有办法在 Ninject 中关闭此类警告?还是其他一些解决方法?
编辑
作为对@BatteryBackupUnit 的回应,这是我的确切问题:
我有多个库......在我的核心库中,我做了这样的事情:
- 查找宿主应用程序(包括宿主)引用的所有程序集
IDependency
查找从所有这些程序集继承的所有类型。- 自动将所有这些注册为瞬态
然后从另一个库(主机应用程序可能会或可能不会引用),我有这个:
Kernel.Bind<IDbContextFactory>().To<DbContextFactory>().InSingletonScope();
这里IDbContextFactory
也是一个IDependency
,所以它已经被核心库加载了,现在我在这里注册它,但范围不同(单例)。
根据经验(并且之前已经测试过),我知道这在 Autofac 中没有问题,但是 Ninject 给了我关于已经注册它的错误消息。
理想情况下,最好只覆盖任何以前的注册......“级联风格”(因为缺乏更好的短语)......