En una de las solicitudes de Get, deseo devolver un HttpResponseMessage con cierto contenido. Actualmente lo tengo trabajando de la siguiente manera:Web API: contenido en HttpResponseMessage
var header = new MediaTypeHeaderValue("text/xml");
Request.CreateResponse(HttpStatusCode.OK, myObject, header);
Sin embargo, dado que estoy usando la Solicitud estática, esto se vuelve realmente difícil de probar. De lo que he leído, yo debería ser capaz de hacer lo siguiente:
return new HttpResponseMessage<T>(objectInstance);
Sin embargo, parece no ser capaz de hacer esto. ¿Es porque estoy usando una versión anterior de WebApi/.NET?
En una nota lateral, he encontrado que potencialmente podría crear una respuesta de la siguiente manera:
var response = new HttpResponseMessage();
response.Content = new ObjectContent(typeof(T), objectInstance, mediaTypeFormatter);
Lo que me intrigó es la razón por qué tengo que añadir un mediaTypeFormatter aquí. He agregado el formateador de tipo de medios al nivel global.asax.
Gracias!
Tienes que pasar el formateador porque de lo contrario ObjectContent tendría que usar un miembro estático para acceder a la colección global, lo que haría más difícil la prueba. –
La solicitud no es estática, es un miembro de instancia de ApiController. –