.Net Core下基于Emit的打造AOP
发布日期:2021-08-13 07:45:04 浏览次数:1 分类:技术文章

本文共 531 字,大约阅读时间需要 1 分钟。

之前的基于DispatchProxy的AOP组件,实现了属性注入,但是这个依旧有很多限制

比如不支持构造器注入,继承DispatchProxy的子类必须是公开类

个人有点代码洁癖,不喜欢这种不能控制的方式,就学了几天Emit,参考了诸多前辈代码 比如智慧和美貌的化身L大(Lemon)的著作AspectCore的一些设计和实现

从从.Net Framework上把代码逻辑跑成功了,再迁移.Net Core,再加上依赖注入对项目再次解耦

代码内有引用L大的AspectCore的反射扩展做优化,我这人懒,有可用的,就懒得自己再实现了

 

我们前言哟一个ITest接口

基于这个实现了一个Jit服务

 

 

 

TestJit是我们的AOP特性类

 

 

 继承自JitAopAttribute即可

贴上单例测试

测试单元跑过了

 

 

 

代码段的截图皆取自测试单元内

项目内的AOP改成了两套:

1、依赖于DispatchProxy的AOP,这套要依赖注入走的属性注入

2、依赖于Emit的AOP,这套只有构造器注入,理论上可以属性注入,但是个人对AutoFac不是特别感兴趣

 

项目地址:

转载于:https://www.cnblogs.com/NCoreCoder/p/11572463.html

转载地址:https://blog.csdn.net/weixin_30679823/article/details/101501506 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:.Net Core 3.0依赖注入替换 Autofac
下一篇:基于DispatchProxy打造自定义AOP组件

发表评论

最新留言

初次前来,多多关照!
[***.217.46.12]2024年03月13日 06时25分45秒

关于作者

    喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!

推荐文章

php redis zrevrange,Redis Zrevrange 命令 2019-04-21
php利用word模板导出excel文件,php生成导出word doc和excel文件实例 2019-04-21
java 边缓存边播放,java动态缓存技术:WEB缓存应用 2019-04-21
php云盘匿名,PHP7之匿名类 2019-04-21
matlab数据大小不兼容,MATLAB无法执行赋值,因为左侧的索引与右侧的大小不兼容。 求解... 2019-04-21
editor.md使用php,editor.md 配置参数和使用方法 2019-04-21
python mod,mod_python的安装 2019-04-21
python分析彩票数据,这波太炸了!Python脚本可视化居然可以这么玩 2019-04-21
简单的mysql重置root密码,重置mysql的root密码最简单的方法 2019-04-21
用matlab仿真mmc环流抑制器,一种基于准PR控制原理的MMC阀组环流抑制方法 2019-04-21
oracle 排序的分析函数,Oracle SQL:使用分析排序函数 2019-04-21
oracle direct for hdfs xi下载,ORACLE连接HDFS有个专项的解决方案 2019-04-21
java 403怎么抛出_java – 如何在Spring MVC中返回403禁止? 2019-04-21
java jsch工具类_Java工具集-JSch连接远程服务器工具类 2019-04-21
cmd背景变红1003无标题_怎样修改cmd中文字的大小、颜色和背景颜色呢 原来是这样的... 2019-04-21
php rand() 重复,php – mt_rand()给我总是相同的数字 2019-04-21
php taglib.php,thinkphp5 taglib自定义标签教程 2019-04-21
java常用包类 array,Java中的StringBuffer和数组Arrays以及常用类型的包装类 2019-04-21
ctf常见php,CTF中常见的PHP伪协议 2019-04-21
php语言冒泡法,PHP 冒泡排序法 2019-04-21