カスタムAbstractLifestyleManager派生型にいくつかの引数を渡す必要があります。CastleウィンザーでCreationContext.AdditionalArgumentsを運ぶ
Iが容器からタイプのインスタンスを要求すると、私は、次のオーバーロードを使用します。例えば
T Resolve<T>(string key, object argumentsAsAnonymousType)
:カスタムAbstractLifestyleManager派生型の内部、そして
public IHttpController CreateController(HttpControllerContext controllerContext, string controllerName)
{
var controller = this.container.Resolve<IHttpController>(
controllerName,
new { requestProperties = controllerContext.Request.Properties });
// ...
}
を、私ができこれを行う:
var messageProperties = (IDictionary<string, object>)
context.AdditionalArguments["requestProperties"];
これは私が前もって渡した値を返します。
しかし、base.Resolve(context, releasePolicy)
を呼び出すと、コードがカスタムタイプに再帰的に入ると、AdditionalArgumentsはnullになります。
base.Resolve
コールの間でAdditionalArgumentsを受け渡しすることはできますか?