.net core IResultFilter 的 OnResultExecuted和OnResultExecuting的区别

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

1、实现过滤器

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

.net core IResultFilter 的 OnResultExecuted和OnResultExecuting的区别_第1张图片

2、结论

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

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

你可能感兴趣的:(.netcore,c#,服务器)