クラス属性に基づいて、登録されたクラスにインターセプターを追加する機能を作成しようとしています。これは私の施設です:
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>()
。
どうすればこれを達成できますか?