如何在asp.net Web窗体中使用Ninject v3?

时间:2013-03-24 13:41:17

标签: asp.net ninject ninject.web

我正在尝试在基于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,这意味着没有注入。

1 个答案:

答案 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; }

并为我工作。