現在、インターセプトされているクラスの1つのインスタンスごとに1つのインターセプターインスタンスを接続しようとすると、問題が発生します。
InterceptorRegistrationStrategyでアドバイスを作成し、カーネルからインターセプターを解決するようにコールバックを設定しています(インジェクションコンストラクターがあります)。InterceptorRegistrationStrategyにはカーネル自体への参照がないため、コールバックでインターセプターをインスタンス化することしかできないことに注意してください。
IAdvice advice = this.AdviceFactory.Create(methodInfo);
advice.Callback = ((context) => context.Kernel.Get<MyInterceptor>());
this.AdviceRegistry.Register(advice);
メソッドごとにインターセプターのインスタンスを取得しています。
インターセプトされるタイプインスタンスごとに1つのインターセプターインスタンスを作成する方法はありますか?
Named Scopeについて考えていましたが、インターセプトされたタイプとインターセプターは相互に参照していません。