[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 );
}
Ответ 2
Я не уверен, поддерживает ли Ninject (я сейчас вдалеке от моего компьютера разработки), но если все остальное терпит неудачу (документация Ninject оставляет желать лучшего), вы можете отделить инициализацию от конструктора, чтобы решить вашу проблему проблема:
class MyType
{
public class MyType() {}
public class MyType(string param1,string param2){Init(param1,param);}
public void Init(string param1,param2){...}
}