西斗门的网站建设,云服务器怎么用详细步骤,wordpress 添加备案信息,常见的网页布局有几种方式在软件业#xff0c;AOP为Aspect Oriented Programming的缩写#xff0c;意为#xff1a;面向切面编程#xff0c;通过预编译方式和运行期动态代理实现程序功能的统一维护的一种技术。AOP是OOP的延续#xff0c;是软件开发中的一个热点#xff0c;是函数式编程的一种衍生… 在软件业AOP为Aspect Oriented Programming的缩写意为面向切面编程通过预编译方式和运行期动态代理实现程序功能的统一维护的一种技术。AOP是OOP的延续是软件开发中的一个热点是函数式编程的一种衍生范型。利用AOP可以对业务逻辑的各个部分进行隔离从而使得业务逻辑各部分之间的耦合度降低提高程序的可重用性同时提高了开发的效率。 在.NET Core中比较好的AOP框架有一个叫做Aspect的这样的一个框架 它是一个国产的如何引入AspectCore? 可以直接nuget。这AspectCore中需要创建一个拦截器一般继承自 AbstractInterceptorAttribute。并且实现它的 Invoke 方法 。其中第一个参数是上下文next是执行的委托方法通过这个委托可以执行被拦截的方法。首先我们可以创建一个需要被代理拦截的类必须是public方法是虚方法且被标记也必须使用MVC中的Filter命名规范。这个方法也可以是异步的如何进行代理 需要通过ProxyGeneratorBuilder 来代理对象注意 p 指向的对象是 AspectCore 生成的 Person 的动态子类的对象直接 new Person是无法被拦截的。 上面说到我们不可以直接new这个person那现在我们调试一下一探究竟!!!我们看看这个p是个什么类型。噫为什么这个p不是AspectPollyIdn.Person而是AspectCore.DynamicGenerated.Person?不妨把这个p的父类给打印出来来瞅瞅。现在的对象是我们了也就是它的父类那这个时候你就绝对要明白了为什么我们的被代理类是虚方法也就是说它用子类类重写了我们被代理类的虚方法也就实现了AOP,那么呢这也就是Aspect.Core的原理。大概简单的就是这样。现在你已经了解了AspectCore的原理了但回头发现每次来创建这些对象都非常繁琐我们只想去使用AspectCore通过CreateClassProxy()来创建我们想要的代理对象那么现在我们可以使用AspNetCore的依赖注入解决这个问题。 首先呢我们引用AspectCore.Extensions.DependencyInjection这是AspectCore给我们的一个DI框架。再把Startup中的ConfigureServices进行改造。随便创建一个类 继承与AbstractInterceptorAttribute 重写方法再添加一个Person。在API中重载进行依赖注入。下面我们进行postman进行测试因为已经关闭了浏览器浏览。 OK成功。原文地址https://www.cnblogs.com/ZaraNet/p/10308706.html.NET社区新闻深度好文欢迎访问公众号文章汇总 http://www.csharpkit.com