private static void SetInvalidRequestResponse(HttpActionContext context) { var returnType = context.ActionDescriptor.ReturnType; var response = Activator.CreateInstance(returnType) as BaseResponse; var request = context.ActionArguments.First().Value as BaseRequest; response.ResponseCode = "Invalid request"; if (request != null) { response.SourceId = request.SourceId; response.Uuid = request.Uuid; } var genericType = typeof (HttpResponseMessage<>) .MakeGenericType(new[] {returnType}); context.Response = Activator .CreateInstance(genericType, response, HttpStatusCode.Forbidden) as HttpResponseMessage; }
Monday, February 27, 2012
MakeGenericType to the rescue
I have a need to return a HttpResponseMessage<> in an ActionFilterAttribute with ActionDescriptor.ReturnType. All my response object belong to a single base class. Anyway, here is how I did it.
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment