4
我需要将一些参数传递给自定义AbstractLifestyleManager派生类型。在Castle Windsor上携带CreationContext.AdditionalArguments
当我请求类型的实例从容器,我使用下面的过载:
T Resolve<T>(string key, object argumentsAsAnonymousType)
例如:
public IHttpController CreateController(HttpControllerContext controllerContext, string controllerName)
{
var controller = this.container.Resolve<IHttpController>(
controllerName,
new { requestProperties = controllerContext.Request.Properties });
// ...
}
然后,定制AbstractLifestyleManager派生类型内,我可以这样做:
var messageProperties = (IDictionary<string, object>)
context.AdditionalArguments["requestProperties"];
其中返回我预先通过的值。
但是,如果我调用base.Resolve(context, releasePolicy)
如果代码递归地输入自定义类型,AdditionalArguments为null。
是否可以在base.Resolve
调用之间传递/流动AdditionalArguments?