网站建设资讯

NEWS

网站建设资讯

使用NinjectIOC属性简单注入

  1. 下载Niject.dll

    海原网站制作公司哪家好,找创新互联建站!从网页设计、网站建设、微信开发、APP开发、成都响应式网站建设等网站项目制作,到程序开发,运营维护。创新互联建站2013年至今到现在10年的时间,我们拥有了丰富的建站经验和运维经验,来保证我们的工作的顺利进行。专注于网站建设就选创新互联建站

 2.新建  控制器工厂


public class ControllerFactory : DefaultControllerFactory 
{   
 private IKernel ninjectKernel;   
 public NinjectControllerFactory()
 {
        ninjectKernel = new StandardKernel();
        AddBindings();
    }    
    protected override IController GetControllerInstance(RequestContext requestContext, Type controllerType) 
    {        
    return controllerType == null ? null : (IController)ninjectKernel.Get(controllerType);
    }   
     private void AddBindings() 
     {  
     
           // todo:后面再来添加绑定   
                       _kernel.Bind().To();
            _kernel.Bind().To();
            _kernel.Bind().To();
            _kernel.Bind().To();
            _kernel.Bind().To();
            _kernel.Bind().To();
            _kernel.Bind().To();
            _kernel.Bind().To();


            _kernel.Bind().To();
            _kernel.Bind().To();
            _kernel.Bind().To();
            _kernel.Bind().To();
            _kernel.Bind().To();
            _kernel.Bind().To();
            _kernel.Bind().To();
            _kernel.Bind().To();


            _kernel.Bind().To();
           
       }
}


3 注册
protected void Application_Start()
 {
    ......    //设置Controller工厂
    ControllerBuilder.Current.SetControllerFactory(new NinjectControllerFactory());
}


还有一种方法属性注入

public class NinjectDependencyResolver:System.Web.Mvc.IDependencyResolver
    {        private readonly IKernel _kernel;        public NinjectDependencyResolver()
        {
            _kernel=new StandardKernel();
            AddBindings();
        }       
        private void AddBindings()
        {
          //同上
        }       
         public object GetService(Type serviceType)
        {           
         return _kernel.TryGet(serviceType);
        }       
         public IEnumerable GetServices(Type serviceType)
        {           
         return _kernel.GetAll(serviceType);
        }
    }
    
    3 注册
    protected void Application_Start()
 {
    DependencyResolver.SetResolver(new Code.NinjectDependencyResolver());//注册Ioc容器
    
}

当前文章:使用NinjectIOC属性简单注入
分享网址:http://cdweb.net/article/pcjeci.html