public IController CreateController(RequestContext requestContext, string controllerName)
        {
            IController ic = _inner.CreateController(requestContext, controllerName);
            Controller  c  = ic as Controller;

            if (c != null && WebApiEnabledAttribute.IsDefined(c))
            {
                IActionInvoker          iai = c.ActionInvoker;
                ControllerActionInvoker cai = iai as ControllerActionInvoker;
                if (cai != null)
                {
                    c.ActionInvoker = new ResourceControllerActionInvoker();

                    string actionName = requestContext.RouteData.Values["action"] as string;
                    if (String.IsNullOrEmpty(actionName))
                    {
                        // set it to a well known dummy value to avoid not having an action as that would prevent the fixup
                        // code in ResourceControllerActionInvoker, which is based on ActionDescriptor, from running
                        requestContext.RouteData.Values["action"] = RestActionToken;
                    }
                }
            }
            return(ic);
        }
 internal static bool TryGetErrorResult2(RequestContext requestContext, HttpException he, out ResourceErrorActionResult actionResult)
 {
     foreach (ContentType responseFormat in requestContext.GetResponseFormats())
     {
         WebApiEnabledAttribute dummy = new WebApiEnabledAttribute();
         if (dummy.TryGetErrorResult(he, responseFormat, out actionResult))
         {
             return true;
         }
     }
     actionResult = null;
     return false;
 }
 internal static bool TryGetErrorResult2(RequestContext requestContext, HttpException he, out ResourceErrorActionResult actionResult) {
     List<ContentType> responseFormats = requestContext.GetResponseFormats();
     for (int i = 0; i < responseFormats.Count; ++i) {
         ContentType responseFormat = responseFormats[i];
         WebApiEnabledAttribute dummy = new WebApiEnabledAttribute();
         if (dummy.TryGetErrorResult(he, responseFormat, out actionResult)) {
             return true;
         }
     }
     actionResult = null;
     return false;
 }