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>