private RouteAttribute GetRouteAttribute(HttpActionDescriptor descriptor) { var methodInfo = descriptor.GetType().GetProperty(nameof(MethodInfo))?.GetValue(descriptor) as MethodInfo; return(methodInfo?.GetCustomAttributes(true).OfType <RouteAttribute>().FirstOrDefault() ?? _dummyRouteAttributeInCaseNotFound); }
public override Task <object> ExecuteAsync(HttpControllerContext controllerContext, IDictionary <string, object> arguments) { return(_traceWriter.TraceBeginEndAsync <object>( controllerContext.Request, TraceCategories.ActionCategory, TraceLevel.Info, _innerDescriptor.GetType().Name, ExecuteMethodName, beginTrace: (tr) => { tr.Message = Error.Format(SRResources.TraceInvokingAction, FormattingUtilities.ActionInvokeToString(ActionName, arguments)); }, execute: () => { return _innerDescriptor.ExecuteAsync(controllerContext, arguments); }, endTrace: (tr, value) => { tr.Message = Error.Format(SRResources.TraceActionReturnValue, FormattingUtilities.ValueToString(value, CultureInfo.CurrentCulture)); }, errorTrace: null)); }