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(); //接口