本文介绍了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的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!