目标是避免在以下列方式配置内核时多次声明相同的构造函数参数:
Kernel.Bind<ISomeService>().To<SomeService>()
.WithConstructorArgument("arg", "value");
Kernel.Bind<SomeService>.ToSelf()
.WithConstructorArgument("arg", "value");
尝试:
Kernel.Bind<ISomeService>().To<SomeService>();
Kernel.Bind<SomeService>().ToSelf().WithConstructorArgument("arg", "value");
希望将“绑定链”考虑在内,但不要考虑。
答案 0 :(得分:1)
您可以将参数打包在一个类型中,例如:
public class FooConfig
{
private readonly string value;
public FooConfig(string value)
{
this.value = value;
}
public Value
{
get { return this.value; }
}
}
然后绑定它:
Bind<FooConfig>().ToConstant(new FooConfig("configValue"));
然后调整依赖项以注入FooConfig
类型。