我们正在外部xml配置文件中定义服务的实现。我们有服务的名称,要实例化的类,包含该类的程序集。我们正在从Spring AOP代码进行迁移。
对于简单的服务,使用kernel.Bind().To()
不会产生任何麻烦。
我们加载程序集,创建一个实例,然后将其返回到To()
。
但是某些服务继承自另一个类,例如:
internal abstract Bar<T>: EntityBo<T> where T : IAddress
{
protected Bar(IAddress adr)
{
}
}
internal Foo:Bar<ILocalAddress>, ILocalAddressService {
}
当我尝试从内核获取ILocalAddressService时,我得到了Ninject.ActivationException:
激活ILocalAddress时出错,没有匹配的绑定可用,并且 类型不是自绑定的。 激活路径:
2)将依赖项ILocalAddress注入到Foo类型的构造函数的参数adr中 1)请求ILocalAddressService
内核位于另一个项目中,并且不知道该接口或其实现。
我如何使其工作?