zoukankan      html  css  js  c++  java
  • 在Ninject 向构造参数中注入具有相同类型的参数

    实际上这个有多种解决方法,加自定义Attribute,或Named(),但这些方式有一些侵入性,Named,要引用Ninject, 自定义Attribute,还要还要再写几行代码吗,所以使用下面的方法,

     

        public class All
        {
            private readonly II _a;
            private readonly II _b;
     
            public All( II a, II b)
            {
                _a = a;
                _b = b;
            }
     
     
            public void Print()
            {
                Console.WriteLine(_a.get());
     
                Console.WriteLine(_b.get());
            }
        }
     
     
        public interface II
        {
            string get();
        }
     
        class A : II
        {
            public string get()
            {
                return "a";
            }
        }
     
        class B : II
        {
            public string get()
            {
                return "b";
            }
        }

     

       1:   [TestClass]
       2:      public class UnitTest1
       3:      {
       4:          [TestMethod]
       5:          public void TestMethod1()
       6:          {
       7:              var ker = new Ninject.StandardKernel();
       8:   
       9:              //ker.Bind<II>().To<A>().Named("a");
      10:              //ker.Bind<II>().To<A>().When(x=>x);
      11:              ker.Bind<II>().To<A>().When(x => x.Target.Name == "a");
      12:   
      13:              ker.Bind<II>().To<B>().When(x => x.Target.Name == "b");
      14:   
      15:              //ker.Bind<All>().To<All>().WithConstructorArgument("a", new A()).WithConstructorArgument("b", new B());
      16:   
      17:              var all = ker.Get<All>();
      18:   
      19:              all.Print();
      20:          }
      21:      }
  • 相关阅读:
    gitea (git服务器), 修改配置,更换IP地址
    使用ffmpeg裁剪和合并视频
    linux/windows/Mac平台生成随机数的不同方法
    Android源代码同步脚本(增加设置线程参数)
    小米2S Mk6.0.1 [只能做测试体验,不能使用]
    MultiROM for the XIAOMI MI2S/2C/2! (Kexec HardBoot Enabled with Kexec HardBoot Patch!)
    [PATCH] UBUNTU: SAUCE: (no-up) apparmor: Sync to apparmor3
    [转载]起动service保存android系统log( logcat服务)
    小米2S TWRP 3.0.2-0 最新中文版本Recovery
    centos 64位编译安装 glibc-2.14
  • 原文地址:https://www.cnblogs.com/zbw911/p/3173512.html
Copyright © 2011-2022 走看看