将参数传递给Castle Windsor中的UsingFactoryMethod

如何将动态参数传递给UsingFactoryMethod注册?

例如,我想写一些类似的东西:

 container.Register( Component.For() .UsingFactoryMethod(return DoSomethingAndReturnInstance(paremeter))); 

我需要在运行时发送参数,如下所示:

 container.Resolve(new { parameter = value }); 

怎么做到呢?

CreationContext.AdditionalParameters具有您传递给Resolve的值

你只需要使用

 container.Register( Component.For() .UsingFactoryMethod((kernel, creationContext) => { var parameter = creationContext.AdditionalArguments["parameter"]; return DoSomethingAndReturnInstance(parameter); }));