Al usar MVC, devolver Jho adhoc fue fácil.Devolver tipos anónimos con API web
return Json(new { Message = "Hello"});
Estoy buscando esta funcionalidad con la nueva API web.
public HttpResponseMessage<object> Test()
{
return new HttpResponseMessage<object>(new { Message = "Hello" }, HttpStatusCode.OK);
}
Esto produce una excepción como el DataContractJsonSerializer
no puede manejar los tipos anónimos.
He sustituido esto con este JsonNetFormatter basado en Json.Net. Esto funciona si uso
public object Test()
{
return new { Message = "Hello" };
}
pero no veo el punto de utilizar la API de Web si no estoy volviendo HttpResponseMessage
, sería mejor de pegarse con vainilla MVC. Si trato y uso:
public HttpResponseMessage<object> Test()
{
return new HttpResponseMessage<object>(new { Message = "Hello" }, HttpStatusCode.OK);
}
Se serializa todo el HttpResponseMessage
.
¿Alguien me puede guiar a una solución donde puedo devolver tipos anónimos dentro de un HttpResponseMessage
?
Esto no parece ser el caso en la versión actual. Recibo un HTTP 500 cuando ejecuto algo como lo anterior. – CodeMonkeyKing
Funcionando bien para mí en 4.0 RTM. – Snixtor
Una nota importante: solo el serializador json predeterminado puede manejar la serialización de objetos anónimos. El serializador xml predeterminado producirá un error, por lo que debe asegurarse de devolver los objetos anónimos que sus clientes saben que deben enviar para aceptar: application/json en el encabezado. Los navegadores como Chrome tienden a solicitar xml de manera predeterminada, así que solo un aviso. – Despertar