zoukankan      html  css  js  c++  java
  • MVC中使用Ninject依赖注入

            在.NET MVC中使用Ninject注入,主要分为以下几步:

    1. 使用NuGet包添加Ninject引用,我添加的是目前最新版本3.34
    2. 在App_Start文件夹下,创建NinjectControllerFactory类
    3. 在Global中添加如下代码
    4. 项目中主要使用的是接口注入,可参考Iuser调用例子
     public class NinjectControllerFactory: DefaultControllerFactory
        {
            private IKernel Kernel;
            public NinjectControllerFactory()
            {
                Kernel = new StandardKernel();
                AddBindings();
            }
    
            protected override IController GetControllerInstance(RequestContext requestContext, Type controllerType)
            {
                return controllerType == null ? null : (IController)Kernel.Get(controllerType);
            }
     
            private void AddBindings()
            {
                Kernel.Bind<IUser>().To<User>();
              
            }
            public object GetService(Type serviceType)
            {
                return this.Kernel.TryGet(serviceType);
            }
    
            public IEnumerable<object> GetServices(Type serviceType)
            {
                return this.Kernel.GetAll(serviceType);
            }
        }
      protected void Application_Start()
            {
                log4net.Config.XmlConfigurator.Configure();
                //设置Controller工厂
                ControllerBuilder.Current.SetControllerFactory(new NinjectControllerFactory());
                AreaRegistration.RegisterAllAreas();
                FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
                RouteConfig.RegisterRoutes(RouteTable.Routes);
                BundleConfig.RegisterBundles(BundleTable.Bundles);
            }
    public class HomeController : Controller
        {
            [Ninject.Inject]
            public IUser user { get; set; }
    
            [AllowLogin]
            public ActionResult Login(string UserName,string UserPwd)
            {
               var userModel = user.GetByLogin(UserName,UserPwd); 
    }
    }
  • 相关阅读:
    django--orm操作
    路由
    django ----视图和路由
    DJango 前三天小结
    JQuery----操作01
    前端---JQuery初识
    前端----jsDOM
    前端---js02
    前端-----js
    面向对象
  • 原文地址:https://www.cnblogs.com/personblog/p/8436047.html
Copyright © 2011-2022 走看看