.net core IResultFilter 的 OnResultExecuted和OnResultExecuting的区别

发布时间:2024年01月15日

//全局过滤器
builder.Services.AddMvc(m =>
{
??? m.Filters.Add<AllResultFilter>();
});

1、实现过滤器

public class AllResultFilter : IResultFilter
{
    /// <summary>
    /// 结果执行后方法
    /// 不可更改结果
    /// </summary>
    /// <param name="context"></param>
    /// <exception cref="NotImplementedException"></exception>
    public void OnResultExecuted(ResultExecutedContext context)
    {
        throw new Exception("ce");
        Trace.WriteLine("OnResultExecuted之后");
    }
    
    /// <summary>
    /// 结果执行之前
    /// 可更改结果
    /// </summary>
    /// <param name="context"></param>
    /// <exception cref="NotImplementedException"></exception>
    public void OnResultExecuting(ResultExecutingContext context)
    {
        Trace.WriteLine("OnResultExecuted之前");
    }
}

2、结论

OnResultExecuting可以修改返回结果,相当于在方法目标执行完追加执行

OnResultExecuted不可以修改返回结果,相当于目标方法执行返回结果后执行

文章来源:https://blog.csdn.net/qq_40934195/article/details/135597758
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。