我正在尝试在基于Jason回答的asp.net webforms应用程序中使用ninject版本3
How can I implement Ninject or DI on asp.net Web Forms?
但它不起作用?
public class Global : NinjectHttpApplication
{
........
protected override IKernel CreateKernel()
{
IKernel kernel = new StandardKernel(new NinjectWebCommon());
return kernel;
}
}
public class NinjectWebCommon : NinjectModule
{
public override void Load()
{
Bind<IProductRepository>().To<EFProductRepository>();
}
}
当我开始调试从未调用的CreateKernel时,我在页面中得到一个异常NullReferenceException,这意味着没有注入。
答案 0 :(得分:2)
我得到了它的工作我删除了global.asax文件,因为我不需要并添加NinjectWebCommon.cs 删除了ninject的引用并再次从nuget(Ninject - Ninject.Web)和 在App_Start / NinjectWebCommon.cs中添加了我的绑定
private static void RegisterServices(IKernel kernel)
{
kernel.Bind<IProductRepository>().To<EFProductRepository>();
}
并在我使用的页面中
[Inject]
public IProductRepository Repository { get; set; }
并为我工作。