webapi filter過濾器中獲得請求的方法詳情(方法名,Attributes)


public class GlobalActionFilter : ActionFilterAttribute
{
private string _requestId; public override void OnActionExecuting(HttpActionContext actionContext) {
 base.OnActionExecuting(actionContext);

//方法1.

var gaf=actionContext.ActionDescriptor.GetCustomAttributes<GlobalAuthorizationFilter>().FirstOrDefault();

string methodName1 = actionContext.ActionDescriptor.ActionName;
//var ad=actionContext.ActionDescriptor.MethodInfo; //MethodInfo調試可以看到,但是代碼點不出來

//方法2:反射
var
methodActionDescriptorProperty = actionContext.Request.Properties["MS_HttpActionDescriptor"] as ReflectedHttpActionDescriptor; if (methodActionDescriptorProperty != null) {   var methodInfo = methodActionDescriptorProperty.MethodInfo; //獲取方法詳情   string methodName = methodInfo.Name; //方法名   var methodCustomAttributes = methodInfo.GetCustomAttributes(true).ToList(); //獲得所有自定義的attributes標記 var authAttribute = methodCustomAttributes.FirstOrDefault(ee => ee is GlobalAuthorizationFilter); //查找是否有特定的attribute標記 if (authAttribute != null) { var gf = authAttribute as GlobalAuthorizationFilter; //轉換為特定的attribute bool isNeedLogin = gf.IsNeedLogin; //拿到特定標記的字段 } } }

 

 

From:http://www.cnblogs.com/xuejianxiyang/p/6208406.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM