zoukankan      html  css  js  c++  java
  • ASP.NET 添加Ninject依赖注入

    依赖注入的简单介绍

    依赖注入不是目的,它是一系列工具和手段,最终的目的是帮助我们开发出松散耦合(loose coupled)、可维护、可测试的代码和程序。这条原则的做法是大家熟知的面向接口,或者说是面向抽象编程。

    依赖注入的具体实例

    1.在Nuget添加Ninject

    2.在Global中添加注入

                DependencyResolver.SetResolver(new NinjectDependencyResolver());// 注册Ninject依赖注入容器

    3.添加注入类NinjectDependencyResolver

      public class NinjectDependencyResolver : IDependencyResolver
        {
            private IKernel kernel; //容器引擎
            public NinjectDependencyResolver()
            {
                kernel = new StandardKernel();
                kernel.Settings.InjectNonPublic = true; // 非public属性注入
                AddBindings();
            }
    
            private void AddBindings()
            {
                this.kernel.Bind<IClassRepository>().To<ClassRepository>();
                this.kernel.Bind<IUserRepository>().To<UserRepository>();
            }
    
            #region IDependencyResolver Members
            public object GetService(Type serviceType)
            {
                return kernel.TryGet(serviceType);
            }
    
            public IEnumerable<object> GetServices(Type serviceType)
            {
                return kernel.GetAll(serviceType);
            }
            #endregion
        }
    View Code

    4.在basecontroller里面添加注入

      #region inject依赖注入
            [Inject]
            protected IClassRepository ClassRepository { get; set; }
            [Inject]
    
            protected IUserRepository UserRepository { get; set; }
            #endregion
    View Code

    5.在具体的controller调用即可

  • 相关阅读:
    四色定理+dfs(poj 1129)
    栈的应用:表达式求值运算
    多重背包 (poj 1014)
    poj 1080 (LCS变形)
    KMP算法(快速模式匹配)
    贪心+构造( Codeforces Round #344 (Div. 2))
    JavaScript Ajax
    Canvas绘图
    TCP/IP协议
    移动端click事件延迟300ms到底是怎么回事,该如何解决?
  • 原文地址:https://www.cnblogs.com/songStar/p/8514502.html
Copyright © 2011-2022 走看看