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); 
    }
    }
  • 相关阅读:
    设计模式-装饰模式(Decorator Pattern)
    死锁分析与解决
    事务原理与开发
    SQL注入与防范
    数据库连接池
    JDBC基础知识
    算法复习
    计算机网络基础知识
    Caused by: org.gradle.api.internal.plugins.PluginApplicationException: Faile
    手写算法
  • 原文地址:https://www.cnblogs.com/personblog/p/8436047.html
Copyright © 2011-2022 走看看