クラス属性に基づいて登録されたクラスにインターセプタを追加する機能を作成しようとしています。 は、これは私の施設である:城ウィンザーファシリティ内にクラスプロキシを作成する
public class MyFacility : AbstractFacility
{
protected override void Init()
{
this.Kernel.ComponentRegistered += (s, h) =>
{
if (h.ComponentModel.Implementation.GetCustomAttributes(typeof(MyAttribute), false).Length > 0)
{
h.ComponentModel.Interceptors.Add(InterceptorReference.ForType<MyInterceptor>());
}
}
}
}
が、私はクラスメソッドでthis
キーワードを使用する場合は、この方法では、それがターゲットクラスではないプロキシクラスを参照し、これは私が正しく動作しません使用して、いくつかのフレームワークを作ります。
ProxyGenerator.CreateClassProxy<MyClass>()
メソッドで生成されたものと同じプロキシを作成する必要があります。
どうすればこの問題を解決できますか?
もっとコードを表示できますか?登録しているコンポーネントがインタフェースまたはクラスですか? – svick
私が登録しているコンポーネントはインターフェイスです。 Thiはウィンザーのインストールです。 _wc = new WindsorContainer(); _wc.AddFacility(); ( コンポーネント。 –
Gigitsu