:
public class InterceptionExtension : UnityContainerExtension
{
protected override void Initialize()
{
Context.Registering += OnRegister;
Context.RegisteringInstance += OnRegisterInstance;
}
public override void Remove()
{
Context.Registering -= OnRegister;
Context.RegisteringInstance -= OnRegisterInstance;
}
private void OnRegister(object sender, RegisterEventArgs e)
{
Container.Configure<Interception>()
.SetInterceptorFor(e.TypeTo, new VirtualMethodInterceptor());
}
private void OnRegisterInstance(object sender, RegisterInstanceEventArgs e)
{
Container.Configure<Interception>()
.SetInterceptorFor(e.RegisteredType, new VirtualMethodInterceptor());
}
}
は、コンテナにこれを追加します。すべての登録されたタイプのその後
_container.AddNewExtension<InterceptionExtension>();
を仮想メンバーに適用するにはInterception
を設定する必要があります。これは、適用された[HandlerAttribute]
でピックアップする必要があります。
私の主な問題は 'Interceptor'ではなく' PolicyInjectionBehavior'であるので、私が理解している解決策は '[HandlerAttribute]'を取り上げません。しかし、アイデア自体は正しいと思いますが、私は 'SetInterceptorFor'をポリシー動作を追加するだけで置き換えます。 –