3

次のようにメッセージパラメータをICallHandler実装に渡すことはできますか?

var logic = container.Resolve<IBussinessLogic>(message);

そして、次のように使用します。

IMethodReturn ICallHandler.Invoke(IMethodInvocation input, GetNextHandlerDelegate getNext)
    {
        Console.WriteLine(
            string.Format(
                "Begin {0} with param {1}",
                input.MethodBase.Name, 
                message // parameter I need to be passed
            )
        );

        var result = getNext.Invoke()(input, getNext);

        Console.WriteLine("End " + input.MethodBase.Name);
        return result;
    }

4

2 に答える 2

1

messageメソッドに渡すのは、Resolve実際にはUnityが構築する名前付きインスタンス名です。この値は、Unityが使用する実装を選択するためIBusinessLogicに使用されます。実装オブジェクトの構築後、それは失われます。

したがって、この値は、オブジェクトの構築中のみUnity内にあります。コンストラクターをインターセプトできないICallHandlerため、アクセスできません。

于 2011-07-18T09:54:42.200 に答える
1

スティーブ・ウィルクスは正しかったようです。「正直なところ、これは傍受を使用しては不可能に聞こえます。」

http://unity.codeplex.com/discussions/265679

于 2011-08-09T08:39:53.853 に答える