net5 Autofac 支持AOP (1)

1、Nuget引入Castle.Core程序集+Autofac.Extras.DynamicProxy程序集

2、自定义类如下,需要继承IInterceptor,实现方法

 public class CustomAutofacAop : IInterceptor
   {
       public void Intercept(IInvocation invocation)
       {
           {
               Console.WriteLine("方法执行前");
           }
           invocation.Proceed();//执行这句话就是去执行具体的实例的这个方法
           {
               Console.WriteLine("方法执行后");
           }
       }
   }

3、在服务的抽象(接口)上标记[Intercept(typeof(CustomAutofacAop))]

[Intercept(typeof(CustomAutofacAop))] //AOP能够在当前接口生效
    public interface ICustomServiceA
    {
        void Show();
    }

4、注册支持AOP扩展的类

在startup里  containerBuilder.RegisterType(typeof(CustomAutofacAop));

5、注册服务的时候,需要需要调用EnableInterfaceInterceptors,标记说明当前服务获取实例后可以支 持AOP

containerBuilder.RegisterType<CustomServiceA>().As<ICustomServiceA>().EnableInterfaceInterceptors(); //接口

  

原文地址:https://www.cnblogs.com/wangmaolin/p/14491820.html