我很惊讶NInject在查找绑定时不遵循类型层次结构。
Bind<ICollection<ICard>>().ToConstructor(/* .. */);
var Cards = IoC.Kernel.Get<IList<ICard>>();
在上面的代码中,Kernel.Get<..>()
向我发送了ActivationException
,因为我没有明确地绑定IList<ICard>
。换句话说,对于NInject,IList<ICard>
不是ICollection<ICard>
。听起来很奇怪。
当然我可以通过明确添加Bind<IList<ICard>>().To<..>()
来删除错误,但我不明白为什么NInject默认情况下不遵循类型层次结构。我错过了什么吗?
所以,有人可以解释一下: