4

カスタム 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 を渡す/流すことは可能ですか?

4

1 に答える 1