• 利用Ninject实现依赖注入 Kevin


    与其手动费时费力地实现,不如利用Ninject方便的实现我们的需求。

    Ninject如何将你需要的类型返回给你


    拿前面的例子,士兵类:

     1 class Samurai 
     2 {
     3     readonly IWeapon weapon;
     4     public Samurai(IWeapon weapon) 
     5     {
     6         this.weapon = weapon;
     7     }
     8 
     9     public void Attack(string target) 
    10     {
    11         this.weapon.Hit(target);
    12     }
    13 }

    而Ninject希望这样获取具体的士兵类:

    IKernel kernel = new StandardKernel();
    var samurai = kernel.Get<Samurai>();

    Ninject会利用构造函数获取Samurai的实例,但Samurai的构造函数中包含一个IWeapon接口,而IWeapon接口是不可以实例化的。Ninject采用的方式是,typebinding,

    typebinding是将具体的类和要实现的接口(抽象类)进行绑定的技术。就这个例子来说,

    Ninject会这样实现:

    1 Bind<IWeapon>().To<Sword>();

    这句代码的意思是,当Ninject碰到需要实例化IWeapon接口的时候,它会实例出Sword对象以满足IWeapon的需要。

  • 相关阅读:
    素数筛的2种方法
    c++含结构体的sort()使用
    构建c++二维vector
    c语言输入单字符避免回车的四种方法
    menset()在c++中的作用
    杭电oj hud1092 1093 活用EOF&n--
    EOF在while(scanf("%d",&n))中的作用
    KMP算法
    图解HTTP(3)
    图解HTTP(2)
  • 原文地址:https://www.cnblogs.com/kfx2007/p/3120580.html
Copyright © 2020-2023  润新知