zoukankan      html  css  js  c++  java
  • Autofac MethodLevel DynamicProxy 接口、类中的方法级别代理

      国内国外各种找文档,根据方法或类上的特性,通过autofac扫描类注册服务时自动连接到对应的拦截器。

    相关Autofac 动态代理基础可以参考园里其他博客。

    如何实现方法级别(接口、类中的方法)的动态代理 

      参考代码,我的仓库 https://github.com/qiqiqiyaya/Autofac-Method-Level-DynamicProxy ,记得star!!!

      autofac 相关文章 https://autofac.readthedocs.io/en/latest/advanced/interceptors.html

      需要安装的包

      

      部分代码借鉴ABP框架

      直接进入正题:

         

        1.需要创建异步拦截器IAsyncInterceptor ,由Castle.Core.AsyncInterceptor包提供。

          

           

        2.创建一个功能类似适配器的类,该类作用 “Intercepts method invocations and determines if is an asynchronous method.”  适配用于异步的 异步拦截器(其实异步拦截器可适用于同步或异步方法)。

          

            在ABP源码里面copy的,哈哈哈

        3.创建一个代理生成器钩子,其中ShouldInterceptMethod决定哪些方法应该被拦截。

          

        4.使用autofac注册服务时启用拦截器(注意“EnableClassInterceptors”与“EnableInterfaceInterceptors”区别)

          创建一个测试服务

          

          实现类

          

        注册服务:

          

          5.只有虚方法、接口中定义的方法才会被动态代理

        

    © 版权声明
    文章版权归作者所有,未经允许请勿转载。
  • 相关阅读:
    System.Web.Mvc.HttpHeadAttribute.cs
    System.Web.Mvc.HttpOptionsAttribute.cs
    System.Web.Mvc.HttpDeleteAttribute.cs
    sqlite-dbeaver-heidisql
    java实现圆周率
    java实现圆周率
    java实现圆周率
    java实现圆周率
    java实现圆周率
    java实现最近距离
  • 原文地址:https://www.cnblogs.com/youlicc/p/15738316.html
Copyright © 2011-2022 走看看