首页 > 编程语言 >.NET Core使用AspectCore实现AOP,使用特性定义的方法拦截器未触发

.NET Core使用AspectCore实现AOP,使用特性定义的方法拦截器未触发

时间:2024-07-22 10:55:25浏览次数:14  
标签:Core 拦截器 Console ... WriteLine AOP 方法 public

使用AspectCore.DynamicProxy.AbstractInterceptorAttribute定义方法拦截器

public class TestAttribute : AbstractInterceptorAttribute
    {
        public override Task Invoke(AspectContext context, AspectDelegate next)
        {
            try
            {
                //方法调用之前
                Console.WriteLine("Before");
                return context.Invoke(next);
            }
            catch (Exception)
            {
                //方法抛异常调用
                Console.WriteLine("exception!");
                throw;
            }
            finally
            {
                //方法完成之后调用
                Console.WriteLine("After");
            }
        }
    }

在方法上添加特性,在调用Handle方法之前方法拦截器会被触发执行Invoke方法,但实际运行中方法拦截器并未生效。

[Test]
public async Task Handle()
{
  ...  
}

经过多方查找与不断尝试,发现给Startup类中的ConfigureServices方法添加返回值能够让方法拦截器生效。

public class Startup
{
    ...  
    public IServiceProvider ConfigureServices(IServiceCollection services)
    {
        ...
        return services.BuildServiceContextProvider();
    }
}

 

标签:Core,拦截器,Console,...,WriteLine,AOP,方法,public
From: https://www.cnblogs.com/uta-red/p/18315610

相关文章

  • MiniAuth 一个轻量 ASP.NET Core Identity Web 后台管理中间插件
    MiniAuth一个轻量ASP.NETCoreIdentityWeb后台管理中间插件「一行代码」为「新、旧项目」添加Identity系统跟用户、权限管理网页后台系统开箱即用,避免打掉重写或是严重耦合情况Github:https://github.com/mini-software/MiniAuth,Gitee:https://gitee.com/shps9510......
  • Asp.Net Core 统一Api返回值
    Asp.NetCore统一Api返回值写在开头在我们在前端调用后端接口时,常常会遇到返回数据不一致的问题,又或者当我们请求接口的时候我们常常需要判断结果,以调用不同的Toast或者Snackbar反馈给操作者,我们需要对接口返回数据进行统一的操作。代码首先我们需要一个返回结果类,他应当接收......
  • ES相关性(_score)
    什么是相关性相关度是指两个事物间相互关联的程度,在检索领域特指检索请求与检索结果之间的相关程度。默认情况下,返回结果是按相关性倒序排列的。但什么是相关性?相关性如何计算?每个文档都有相关性评分,用一个正浮点数字段_score来表示。_score的评分越高,相关性越高。查询......
  • SpringAOP的简单介绍及入门案例
    文章目录一、AOP介绍二、使用步骤(日志案例)1.创建模块,导入依赖2.创建实体类3.创建业务层接口和实现类4.创建日志类5.配置切面6.创建配置类7.单元测试三、通知类型1.四大通知2.环绕通知四、切点表达式1.execution2.@annotation五、记录日志详情一、AOP介绍AOP(......
  • net core中使用jwt时,提示DenyAnonymousAuthorizationRequirement: Requires an authe
    客户端请求是401,控制台提示info:Microsoft.AspNetCore.Authorization.DefaultAuthorizationService[2]Authorizationfailed.Theserequirementswerenotmet:DenyAnonymousAuthorizationRequirement:Requiresanauthenticateduser.翻遍了资料,也查不到原因,......
  • ASP.NET Core MVC如何在Filter中获取ControllerName和ActionName,以及在Action方法上声
    在ASP.NETCoreMVC的Filter中,我们可以通过ActionContext对象获取到许多有用的信息,例如下面的代码在IAuthorizationFilter中,获取了ControllerName和ActionName,以及在Action方法上声明的Filter:usingMicrosoft.AspNetCore.Mvc.Controllers;usingMicrosoft.AspNetCore.Mvc.Filte......
  • 将 .NET Framework 应用程序更新到 .NET Core。这是一个 VB.NET Windows 服务
    我有一个用VB.NET编写的有点旧的.NET4.7Windows服务。我想将其升级到.NETCore8.0,但升级向导似乎不想处理大量工作如果.NETCore支持VB.NETWindows服务,我找不到任何真正的内容....我可以找到大量创建控制台应用程序等的C#示例,但没有找到VB.NET的任何内......
  • [rCore学习笔记 016]实现应用程序
    写在前面本随笔是非常菜的菜鸡写的。如有问题请及时提出。可以联系:[email protected]:https://github.com/WindDevil(目前啥也没有设计方法了解了特权级机制,实际上如果要设计一个应用程序就需要保证它符合U模式的要求,不要去访问S模式下的功能,那么其实现要点是:应......
  • Spring Core
    Author:ACatSmilingSince:2024-07-19IoCIoC:InversionofControl,控制反转。是面向对象编程中的一种设计原则/设计思想,旨在降低代码之间的耦合度,提高系统的灵活性和可维护性。其核心思想是通过反转对象的控制权,将对象创建与对象之间的调用过程交给专门的容器进行管理(如Spring......
  • 深入浅出 Spring AOP:从原理到实战
    深入浅出SpringAOP:从原理到实战在日常开发中,我们常常需要在不改变原有代码的情况下,为某些方法添加额外的功能,比如日志记录、权限控制、事务管理等。SpringAOP(Aspect-OrientedProgramming,面向切面编程)正是为了解决这一问题而生的。今天,我们将深入探讨SpringAOP的原理,并通过......