如何将动态参数传递给UsingFactoryMethod
注册?
例如,我想写一些类似的东西:
container.Register(
Component.For<IFoo>()
.UsingFactoryMethod(return DoSomethingAndReturnInstance(paremeter)));
我需要在运行时发送参数,如下所示:
container.Resolve<IFoo>(new { parameter = value });
怎么做?
答案 0 :(得分:5)
CreationContext.AdditionalParameters
包含您传递给Resolve
答案 1 :(得分:1)
你只需要使用
container.Register(
Component.For<IFoo>()
.UsingFactoryMethod((kernel, creationContext) =>
{
var parameter = creationContext.AdditionalArguments["parameter"];
return DoSomethingAndReturnInstance(parameter);
}));