//全局过滤器
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不可以修改返回结果,相当于目标方法执行返回结果后执行