首页 > Web开发 > 详细

asp.net mvc 依赖注入Ninject

时间:2019-04-30 18:07:00      阅读:149      评论:0      收藏:0      [点我收藏+]

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>

技术分享图片

 

asp.net mvc 依赖注入Ninject

原文:https://www.cnblogs.com/ligenyun/p/10797053.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!