我認爲有以下應該達到你以後
定義UnityContainerExtension
像這樣:
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]
。
據我所知,建議的解決方案不會選擇'[HandlerAttribute]',因爲我的主要問題是'PolicyInjectionBehavior',而不是'Interceptor'。然而,我認爲這個想法本身是正確的,我只是用添加策略行爲來替換'SetInterceptorFor'。 –