我的项目是使用便携式区域完成的,我使用 ninject 进行 DI,我正在注入一个在其他程序集中的类,所以我在 areaRegistraction 中有以下代码:
DependencyResolver.Current.GetService<IModuleManager>().Add(this.module);
IKernel kernel = DependencyResolver.Current.GetService<IKernel>();
kernel.Bind<IConfigurationRepository>().To<ConfigurationRepository>();
在我的构造函数中,我有以下代码:
public RequestController(IconfigurationRepository configurationRepository)
{
this.configurationRepository= configurationRepository;
}
但由于某种原因 configurationRepository 为空
但如果我说:
public RequestController()
{
this.configurationRepository = ((StandardKernel)DependencyResolver.Current.GetService<IKernel>()).GetAll<IConfigurationRepository>().First();
}
它工作正常。他们之间有什么不同?
任何线索将不胜感激。