autofac aop扩展 通过接口
class Program
{
static void Main(string[] args)
{
//创建一个容器
ContainerBuilder builder = new ContainerBuilder();
//注册UserService
builder.RegisterType<UserService>().As<IUserService>()
.EnableInterfaceInterceptors();//通过接口方式完成aop扩展
builder.RegisterType<CustomInterceptor>();//通过接口方式完成aop扩展
//从容器中解析出UserService
IContainer container = builder.Build();
IUserService a = container.Resolve<IUserService>();
//执行UserService的方法
a.show();
}
}
//生产一个 UserService类
public class UserService : IUserService
{
public void show()
{
Console.WriteLine("UserService 执行");
}
}
[Intercept(typeof(CustomInterceptor))]//通过接口方式完成aop扩展
public interface IUserService
{
void show();
}
using Castle.DynamicProxy; namespace autofac_aop测试; public class CustomInterceptor : IInterceptor { public void Intercept(IInvocation invocation) { Console.WriteLine("================================================"); Console.WriteLine("=================在XX业务逻辑前执行=============="); Console.WriteLine("================================================="); invocation.Proceed(); Console.WriteLine("==================================================="); Console.WriteLine("=================在XX业务逻辑后执行================"); Console.WriteLine("==================================================="); } }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具