下载Niject.dll


2.新建 控制器工厂



publicclassControllerFactory:DefaultControllerFactory{privateIKernelninjectKernel;publicNinjectControllerFactory(){ninjectKernel=newStandardKernel();AddBindings();}protectedoverrideIControllerGetControllerInstance(RequestContextrequestContext,TypecontrollerType){returncontrollerType==null?null:(IController)ninjectKernel.Get(controllerType);}privatevoidAddBindings(){//todo:后面再来添加绑定_kernel.Bind<IUserService>().To<UserService>();_kernel.Bind<IRoleService>().To<RoleService>();_kernel.Bind<IDepartmentService>().To<DepartmentService>();_kernel.Bind<IUserRoleService>().To<UserRoleService>();_kernel.Bind<IUserDepartmentService>().To<UserDepartmentService>();_kernel.Bind<IDepartmentTypeService>().To<DepartmentTypeService>();_kernel.Bind<IProjectInforService>().To<ProjectInforService>();_kernel.Bind<IPerformanceService>().To<PerformanceService>();_kernel.Bind<IUserRepository>().To<UserRepository>();_kernel.Bind<IRoleRepository>().To<RoleRepository>();_kernel.Bind<IDepartmentRepository>().To<DepartmentRepository>();_kernel.Bind<IUserRoleRepository>().To<UserRoleRepository>();_kernel.Bind<IUserDepartmentRepository>().To<UserDepartmentRepository>();_kernel.Bind<IDepartmentTypeRepository>().To<DepartmentTypeRepository>();_kernel.Bind<IProjectInforRepository>().To<ProjectInforRepository>();_kernel.Bind<IPerformanceRepository>().To<PerformanceRepository>();_kernel.Bind<DataContext>().To<DataContext>();}}3注册protectedvoidApplication_Start(){......//设置Controller工厂ControllerBuilder.Current.SetControllerFactory(newNinjectControllerFactory());}还有一种方法属性注入publicclassNinjectDependencyResolver:System.Web.Mvc.IDependencyResolver{privatereadonlyIKernel_kernel;publicNinjectDependencyResolver(){_kernel=newStandardKernel();AddBindings();}privatevoidAddBindings(){//同上}publicobjectGetService(TypeserviceType){return_kernel.TryGet(serviceType);}publicIEnumerable<object>GetServices(TypeserviceType){return_kernel.GetAll(serviceType);}}3注册protectedvoidApplication_Start(){DependencyResolver.SetResolver(newCode.NinjectDependencyResolver());//注册Ioc容器}