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