我有一个Ninject注入依赖项的类 . 其中一种注入类型与Ninject不同 . 我在Assembly1中注册了模块 .
/*Assembly1.Dll (Logical layer)*/
internal class InternalType {}
public class Gobblin {
InternalType _iType;
internal Gobblin(InternalType iType) {
_iType = iType;
}
}
public class CommonModule : NinjectModule {
public override void Load() {
Bind<IInternalType>()
.To<InternalType>()
.InRequestScope();
}
}
/*End assembly1 code*/
我的另一个程序集是一个MVC Web应用程序 . 我的一个控制器需要Gobblin类,但由于Ninject没有找到构造函数,绑定失败了 .
我知道Ninject无法访问Gobblin类的内部构造函数,但我认为是因为注册它的模块包含在它可能工作的同一个程序集中 .
我可以在这里打破OO原则并将InternalType公之于众,但我想先知道是否还有其他方法 .
谢谢你的时间 .
1 回答
你的程序集是Ninject本身的外部 . 默认配置不允许注入任何公共构造函数,属性......您可以更改配置 . 看看NinjectSettings .