Establecer configuraciones de serializador JSON globales por defecto

Estoy tratando de establecer la configuración del serializador global de esta manera en mi global.asax .

 var formatter = GlobalConfiguration.Configuration.Formatters.JsonFormatter; formatter.SerializerSettings = new JsonSerializerSettings { Formatting = Formatting.Indented, TypeNameHandling = TypeNameHandling.Objects, ContractResolver = new CamelCasePropertyNamesContractResolver() }; 

¿Al serializar el objeto utilizando el siguiente código, no se utilizan las configuraciones del serializador global?

 return new HttpResponseMessage(HttpStatusCode.OK) { Content = new StringContent(JsonConvert.SerializeObject(page)) }; 

¿No es posible establecer la configuración del serializador global de esta manera o me falta algo?

Establecer el JsonConvert.DefaultSettings hizo el truco.

 JsonConvert.DefaultSettings = () => new JsonSerializerSettings { Formatting = Formatting.Indented, TypeNameHandling = TypeNameHandling.Objects, ContractResolver = new CamelCasePropertyNamesContractResolver() }; 

Simplemente haga lo siguiente en su acción para que pueda devolver una respuesta negociada por contenido y también su configuración de formateador puede entrar en vigencia.

 return Request.CreateResponse(HttpStatusCode.OK, page); 

Tiene razón sobre dónde configurar el serializador. Sin embargo, ese serializador se usa cuando la solicitud a su sitio se realiza con un tipo de contenido solicitado de JSON. No es parte de la configuración utilizada al llamar a SerializeObject. Podría solucionar esto exponiendo la configuración de serialización JSON definida global.asax a través de una propiedad.

 public static JsonSerializerSettings JsonSerializerSettings { get { return GlobalConfiguration.Configuration.Formatters.JsonFormatter.SerializerSettings; } } 

Y luego use esta propiedad para establecer la configuración de serialización cuando haga la serialización dentro de sus controladores:

 return new HttpResponseMessage(HttpStatusCode.OK) { Content = new StringContent(JsonConvert.SerializeObject(page, WebApiApplication.JsonSerializerSettings)) };