我需要将一些参数传递给自定义 AbstractLifestyleManager 派生类型。
当我从容器请求一个类型的实例时,我使用以下重载:
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 ?