我想知道如何更改顺序或do something
来控制方法的执行顺序。
I have this class prototype:
[AttributeUsage(AttributeTargets.Method | AttributeTargets.Class, AllowMultiple = false, Inherited = true)]
public abstract class ApiDbAuthAttribute : System.Web.Http.Filters.ActionFilterAttribute, IAuthorizationFilter {
public override void OnActionExecuting(HttpActionContext actionContext) {
// this I want to go off first
}
public void OnAuthorization(AuthorizationContext filterContext) {
// this I want to go off after the first
}
public override void OnActionExecuted(HttpActionExecutedContext actionExecutedContext) {
// this at the end
}
}
实际发生了什么:
1. OnAuthorization
2. OnActionExecuting
3. OnActionExecuted
我知道,这是正确的顺序,我知道它应该是这样的,
但我正在触发 UnitOfWork OnActionExecuting
,
当我使用这个过滤器时,我使用DB的原因
PS:我正在使用
using IAuthorizationFilter = System.Web.Mvc.IAuthorizationFilter;
我知道 System.Web.Http.Filters.IAuthorizationFilter
之间存在差异,
但是我没有找到实现这个的方法,我不知道我是否需要这样做。
如何更改订单或如何解决?