autofac aop扩展

news/2025/3/1 4:48:40/文章来源:https://www.cnblogs.com/hlm750908/p/18598378


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();
}

image

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("===================================================");}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/850625.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

英语期末视听说大二

语雀链接:https://www.yuque.com/g/wushi-ls7km/mlng6f/hr8zqdt6rygushag/collaborator/join?token=fK0acakbepENTOZJ&source=doc_collaborator# 《英语期末视听说大二》

935. 骑士拨号器

象棋骑士有一个独特的移动方式,它可以垂直移动两个方格,水平移动一个方格,或者水平移动两个方格,垂直移动一个方格(两者都形成一个 L 的形状)。象棋骑士可能的移动方式如下图所示:我们有一个象棋骑士和一个电话垫,如下所示,骑士只能站在一个数字单元格上(即蓝色单元格)。…

ThreeJs-06详解灯光与阴影

一.gsap动画库 1.1 基本使用和原理 首先直接npm安装然后导入 比如让一个物体,x轴时间为5s旋转同理动画的速度曲线,可以在官网的文档找到1.2 控制动画属性与方法 当然这里面也有一些方法,动画完成,动画开始等一些属性也可实现停止动画随时,给到一个变量双击暂停以及恢复二.…

在Windows下为CodeBlocks20.3安装、配置wxWidget3.2.6

0.前言 CodeBlocks是使用C++编写程序的一个很好的开发环境,最大的好处是它是开源的、免费的,而不仅仅是因为它具有跨平台的能力。还有一个很重要的原因是在CodeBlocks中可以使用wxWidget,wxWidget也是开源的、免费的。 尽管Qt和MFC也很优秀,Qt Creator和Visual Studio都是很…

过程映像区和外设地址

循环程序执行与过程映像区的更新主程序循环过程:OS启动扫描循环监视时间将输出过程映像区的值写到输出模块读取输入模块的值状态值,并更新到输入过程映像区逻辑处理当循环结束,处理其他未决任务,例如删除和加载块。CPU返回循环启动,重新启动扫描循环监视时间过程映像区和外…

将 MSF 捆绑进入正常的APP 程序中

下载需要的脚本 将MSF监听 捆绑进入正常的 APP 中以达到控制目标手机的目的 使用kail 虚拟机完成 整个的过程 下载脚本git clone https://gitee.com/stemmm/apkhook520.git进入脚本根目录cd apkhook520\ifconfig 查询 当前虚拟机的 IP地址找一个 要捆绑的 APK 放在脚本同一级的…

解决 Mac(M1/M2)芯片,使用node 14版本

前言 nvm 在安装 Node.js v14.21.3 时,报错: nvm install 14 Downloading and installing node v14.21.3... Downloading https://nodejs.org/dist/v14.21.3/node-v14.21.3-darwin-arm64.tar.xz... curl: (56) The requested URL returned error: 404Binary download from ht…

OpenAI Sora:AI视频生成新时代现已开启

Sora现已上线 期待已久的时刻终于到来:OpenAI正式推出了备受期待的AI驱动视频生成工具——Sora。这款工具于2024年12月发布,为从文本和图像生成动态、创意且视觉引人注目的视频提供了尖端解决方案。以下是关于Sora的深度解析,包括它的功能亮点、重要意义、价格结构以及如何重…

AI与遥感的融合:构建新一代智能监测作业平台

在测绘地理信息与遥感领域,人工智能(AI)技术的融合正推动着一场监测作业模式的革命。AI不仅提升了数据处理的效率,还极大地扩展了遥感技术的应用范围和深度。遥感监测的智能化趋势随着遥感数据量的激增,传统的人工解译方式已无法满足当前的需求。AI技术,尤其是深度学习,…

RAG分块策略:主流方法(递归、jina-seg)+前沿推荐(Meta-chunking、Late chunking、SLM-SFT)

RAG分块策略:主流方法(递归、jina-seg)+前沿推荐(Meta-chunking、Late chunking、SLM-SFT)RAG分块策略:主流方法(递归、jina-seg)+前沿推荐(Meta-chunking、Late chunking、SLM-SFT) 大多数常用的数据分块方法(chunking)都是基于规则的,采用 fixed chunk size(译…

Beta阶段总结报告

1. 概述 Beta阶段目标实现沙盒模式核心功能,支持逻辑组件的添加、操作及测试。 初步实现关卡模式,通关检测功能等。 丰富组件种类,完善用户体验。 验证系统性能,发现并解决关键BUG。 收集用户反馈,为后续优化提供依据。Beta第十周Scrum meeting记录: https://www.cnblogs…