With.Parameters.ConstructorArgument与ninject 2.0 [英] With.Parameters.ConstructorArgument with ninject 2.0

查看:124
本文介绍了With.Parameters.ConstructorArgument与ninject 2.0的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

如何ninject 2.0使用此功能?

 的MyType的obj = kernel.Get<&MyType的GT;(With.Parameters.ConstructorArgument(富,酒吧));

带是不存在的:(


解决方案

  [事实]
   公共无效CtorArgTestResolveAtGet()
   {
       的iKernel内核=新StandardKernel();
       kernel.Bind&所述; IWarrior方式>()到<武士>();
       变种战士=内核
           不用彷徨< IWarrior>(新ConstructorArgument(武器,新剑()));
       Assert.IsType<剑与GT;(warrior.Weapon);
   }   [事实]
   公共无效CtorArgTestResolveAtBind()
   {
       的iKernel内核=新StandardKernel();
       kernel.Bind&所述; IWarrior方式>()到<武士>()
           .WithConstructorArgument(武器,新剑());
       变种战士= kernel.Get< IWarrior>();
       Assert.IsType<剑与GT;(warrior.Weapon);
   }

How to use this functionality in ninject 2.0?

MyType obj = kernel.Get<MyType>(With.Parameters.ConstructorArgument("foo","bar"));

The "With" isn't there :(

解决方案

   [Fact]
   public void CtorArgTestResolveAtGet()
   {
       IKernel kernel = new StandardKernel();
       kernel.Bind<IWarrior>().To<Samurai>();
       var warrior = kernel
           .Get<IWarrior>( new ConstructorArgument( "weapon", new Sword() ) );
       Assert.IsType<Sword>( warrior.Weapon );
   }

   [Fact]
   public void CtorArgTestResolveAtBind()
   {
       IKernel kernel = new StandardKernel();
       kernel.Bind<IWarrior>().To<Samurai>()
           .WithConstructorArgument("weapon", new Sword() );
       var warrior = kernel.Get<IWarrior>();
       Assert.IsType<Sword>( warrior.Weapon );
   }

这篇关于With.Parameters.ConstructorArgument与ninject 2.0的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆