asp.net mvc 依赖注入Ninject
2024-10-07 03:25:20
1.安装Ninject
2.使用Ninject
一 安装Ninject
Nuget:Ninject
二 使用Ninject
public interface IStudent
{
string GetName();
}
public class Student : IStudent
{
public string GetName()
{
return "ligenyun";
}
}
public class NinjectControllerFactory : DefaultControllerFactory
{
private IKernel ninjectKernel; public NinjectControllerFactory()
{
ninjectKernel = new StandardKernel();
AddBindings();
} private void AddBindings()
{
ninjectKernel.Bind<IStudent>().To<Student>();
} protected override IController GetControllerInstance(System.Web.Routing.RequestContext requestContext, Type controllerType)
{
return controllerType == null ? null : (IController)ninjectKernel.Get(controllerType);
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using System.Web.Routing; namespace WebApplicationNinject
{
public class MvcApplication : System.Web.HttpApplication
{
protected void Application_Start()
{
AreaRegistration.RegisterAllAreas();
RouteConfig.RegisterRoutes(RouteTable.Routes);
ControllerBuilder.Current.SetControllerFactory(new NinjectControllerFactory());
}
}
}
using Ninject;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using WebApplicationNinject.Models; namespace WebApplicationNinject.Controllers
{
public class StudentController : Controller
{
IStudent calcImpl; public StudentController(IStudent _calcImpl)
{
calcImpl = _calcImpl;
} // GET: Student
public ActionResult Index()
{
ViewData["test"] = calcImpl.GetName();
return View();
}
}
}
@{
ViewBag.Title = "Index";
} <h2>@ViewData["test"]</h2>
最新文章
- -webkit-tap-highlight-color
- ASP.NET MVC之Unobtrusive Ajax(五)
- JSP内置对象-request
- 【转载】iOS堆和栈的理解
- [转]Neutron演进
- CodeForces 702 A Maximum Increase (贪心,高效算法)
- poj2104
- SAE flask及其扩展 bug指南
- spring mvc事务注解
- 身份证校验程序(上)- 零基础入门学习Delphi48
- MySQL几种方法的数据库备份
- SGD
- WPF实现主题更换的简单DEMO
- JWT 认证 以及Django 中的应用
- java 根据身份证号码获取出生日期、性别、年龄
- OpenCV (C++) 颜色跟随
- CM记录-Hadoop参数调优
- JavaScript对象简介(一)
- Redis入门到高可用(二)—— Redis启动及使用
- js原生轮播
热门文章
- 华为服务器XH628配置软RAID
- linux系统设置登录失败n次锁定账户:vim /etc/pam.d/system-auth
- linux PHP空间设置GZIP压缩网页方法!
- monkey自定义脚本
- Java I/O(二)其他常用的输入输出流PrintStream等、标准流重定向
- C语言|博客作业12—学期总结
- mysql常用查询命令
- Acwing-277-饼干(DP)
- django admin登陆页出现TypeError at /admin/
- File类、FileInfo类、Directory类、DirectoryInfo类