【发布时间】:2011-05-16 07:37:15
【问题描述】:
我有一个 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 公开,但我想先知道是否有其他方法。
感谢您的宝贵时间。
【问题讨论】:
标签: ninject