前提

1.Nuget安装Autofac 4.0以下版本  4.0及4.0 以上版本暂时没找到合适的方案

2.Nuget安装Autofac.Extras.DynamicProxy2

3.创建一个类似下面代码得 拦截类

    public class TestInterceptor : IInterceptor{public void Intercept(IInvocation invocation){string c = string.Format("Calling method {0} with parameters {1}... ",invocation.Method.Name,string.Join(", ", invocation.Arguments.Select(a => (a ?? "").ToString()).ToArray()));invocation.Proceed();string b = string.Format("Done: result was {0}.", invocation.ReturnValue);}}

注:autufac文档

http://docs.autofac.org/en/latest/advanced/interceptors.html

第一种方式

在接口或者实现类添加[Intercept(typeof(TestInterceptor))]标签

如:

   [Intercept(typeof(TestInterceptor))]public interface IPersonRepository{IEnumerable<Person> GetAll();Person Get(int id);Person Add(Person item);bool Update(Person item);bool Delete(int id);}

添加注入代码的时候这样写:

builder.RegisterType<PersonRepository>().EnableInterfaceInterceptors().As<IPersonRepository>();builder.RegisterType<TestInterceptor>();

第二种

不用添加[Intercept(typeof(TestInterceptor))]标签

添加注入代码的时候这样写:

builder
.RegisterType<PersonRepository>()
.EnableInterfaceInterceptors()
.InterceptedBy(typeof(TestInterceptor))
.As<IPersonRepository>();

好了  结束

转载于:https://www.cnblogs.com/liuyu7177/p/5941662.html

Autofac 设置方法拦截器的两种方式相关推荐

  1. 框架:SpringMVC中Interceptor拦截器的两种实现

    Spring中使用Interceptor拦截器 SpringMVC 中的Interceptor 拦截器也是相当重要和相当有用的,它的主要作用是拦截用户的请求并进行相应的处理.比如通过它来进行权限验证, ...

  2. java 登录过滤_Java 过滤器实现(登录) + 拦截器(两种方法)

    以下是实现未登录不能进入页面的实现 使用了thyemeleaf+SpringBoot+过滤器实现的,过滤器的核心代码如下: @Component @WebFilter(filterName= &quo ...

  3. UITabBar背景、icon图标颜色、被选中背景设置以及隐藏UITabBar的两种方式

    一.对UITabBar背景和icon图标的一些设置 (1)因为直接给UITabBar设置的背景颜色显示的不纯,半透明的感觉,所以,有时候我们可以直接利用纯色的图片作为背景达到想要的效果: (2)给ic ...

  4. Finereport 设置下拉框的两种方式

    执行结果. 第一种方式:在模板数据集查询里面添加Where条件: 1.在数据集中添加Sql语句: SELECT * FROM 订单 SELECT * FROM 订单 where 货主地区='${dq} ...

  5. HashMap 遍历hashMap的7种方法和删除数据两种方式

    遍历数据 1.使用Iterator 遍历HashMap EntrySet 2.使用Iterator 遍历HashMap KeySet 3.使用For-each EntrySet 循环迭代 HashMa ...

  6. CentOS7设置静态ip地址的两种方式

    一.修改配置文件 网卡配置文件目录在:/etc/syconfg/network-scripts中 进入网卡配置目录,由于我的是虚拟机,所以网卡名字为ens33 vim命令编辑ens33文件,修改ipa ...

  7. SpringMVC 控制器默认支持GET和POST两种方式

    在SpringMVC的controller中,@RequestMapping只写路径,不包含RequetMethod.GET和RequetMethod.POST,HttpServletRequest的 ...

  8. 计算机音乐播放器设置,Win7系统下设置默认音乐播放器的两种方法

    可能很多新手用户不知道Win7系统下怎么设置默认音乐播放器?我们习惯将某一程序设置为默认打开方式,音乐播放器也可以这样子的.一些用户想把酷狗播放器.或者qq音乐设置为默认音乐播放器,只要打开音乐文件, ...

  9. html mp3默认播放器,Win7系统下设置默认音乐播放器的两种方法

    可能很多新手用户不知道Win7系统下怎么设置默认音乐播放器?我们习惯将某一程序设置为默认打开方式,音乐播放器也可以这样子的.一些用户想把酷狗播放器.或者qq音乐设置为默认音乐播放器,只要打开音乐文件, ...

最新文章

  1. 修改docker 的挂载路径 Root Dir
  2. Linux内存管理(经典)
  3. Boost:内存限制的测试程序
  4. bootstraptable 日期控件_bootstrap table插件使用说明demo
  5. C++对象数组与对象指针
  6. Nginx 502报错(django+nginx,而非php-fmp)
  7. linux进程与线程的通讯,实验进程与线程——Linux进程与线程通讯.ppt
  8. 富士通Fujitsu DPK9500GA Pro 打印机驱动
  9. 怎样在线改图片大小?教你如何在线裁剪图片
  10. 题目96:把一张一元的钞票换成一分、两分、和五分的硬币,每种硬币至少一枚。问有哪几种换法?
  11. 【Java】Red5服务器搭建(实现在线直播,流媒体视频播放)
  12. dig的现在分词_现在分词的变化规则(含双写加ing的动词归纳)
  13. Echarts南丁格尔图.
  14. 以下关于python二维数据的描述中错误的是_关于二维数据CSV存储问题,以下选项中描述错误的是‪‪‪‪‪‪‫‪‪‪‪‪‫‪‪‪‪‪‪‪‪‪‪‪‪‪‪‪‪‪‪‪‪‪‪‪‪‪‪‫:...
  15. touchGFX 添加中文字库
  16. 提供Minimal SD Base Gal/Raf SD基础培养基(含半乳糖/棉子糖)
  17. 2022年顶会accepted papers list
  18. 树莓派4配置USB启动-解决wlan0不识别问题
  19. 浅谈共享充电器电路板构造及充电原理
  20. HWAutoTool 自动化工具操作手机模拟器文档介绍

热门文章

  1. python 批量更换图片格式脚本
  2. 鼠标滚轮(mousewheel)和DOMMouseScroll事件 (转载)
  3. html语言table,HTML table 标签
  4. java的indexof怎么配合数组使用_【小知识点??】indexOf在数组中竟能这样使用???!...
  5. python中什么是算法_python自动开发之(算法)第二十七天
  6. hive提供oracle接口嘛,Hive是个什么东东
  7. 第三届Apache Flink 极客挑战赛暨AAIG CUP攻略发布!
  8. 新时代大视频产业的底座,视频云创变了什么?
  9. 一图看懂钉钉宜搭线上发布会
  10. 2021第一场 | 阿里云高校计划训练营全面升级!0成本体验云计算入门到进阶