加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net mvc 依赖注入Ninject

发布时间:2020-12-16 03:58:22 所属栏目:asp.Net 来源:网络整理
导读:1.安装Ninject 2.使用Ninject 一?安装Ninject Nuget:Ninject ? 二?使用Ninject ? public interface IStudent { string GetName(); } public class Student : IStudent { public string GetName() { return " ligenyun " ; } } public class NinjectControll

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>

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读