Unity是微软P&P部门开发的一个轻量级IoC框架,通过Interception机制可以实现基于三种拦截机制的AOP。不过Unity仅仅提供“显式”拦截机制,以致我们为了注册可被拦截的类型会多写很多代码和配置。本篇文章通过UnityContainer的扩展提供了一种“自动”拦截机制。

我们通过一个简单的实例演示Unity原生支持的显式拦截机制和我们通过扩展实现的自动拦截机制。我们定了如下一个简单的SimpleCallHandler,在Invoke方法中通过在控制台打印一段文字用以证明应用在某个类型上的CallHandler被执行了。

class SimpleCallHandler : ICallHandler
   2: {
public IMethodReturn Invoke(IMethodInvocation input, GetNextHandlerDelegate getNext)
   4:     {
, input.Target.GetType().Name);
return getNext()(input, getNext);
   7:     }
int Order { get; set; }
   9: }
class SimpleCallHandlerAttribute : HandlerAttribute
  11: {
override ICallHandler CreateHandler(IUnityContainer container)
  13:     {
this.Order };
  15:     }
  16: }

相关文章:

  • 2021-11-08
  • 2021-08-05
  • 2021-08-03
  • 2022-01-04
  • 2022-02-05
  • 2021-11-04
猜你喜欢
  • 2021-10-12
  • 2021-07-28
  • 2021-10-22
  • 2021-12-25
  • 2021-11-20
  • 2021-10-04
  • 2022-12-23
相关资源
相似解决方案