カスタム 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"];
以前に渡した値を返します。
ただし、コードがカスタム型に再帰的に入る場合、AdditionalArguments を呼び出すbase.Resolve(context, releasePolicy)
と null になります。
base.Resolve
呼び出し間で AdditionalArguments を渡す/流すことは可能ですか?