Serializzatore JSON.NET per servizi REST WCF

Sto cercando di utilizzare il pacchetto nuget NETFx Json.NET MediaTypeFormatter per sostituire il DataContractJsonSerializer predefinito nel mio servizio REST WCF (framework 4.0). Ho scaricato il pacchetto nel mio progetto e aggiunto le seguenti righe di codice nel file Global.asax.

void Application_Start(object sender, EventArgs e) { RegisterRoutes(); // Create Json.Net formatter serializing DateTime using the ISO 8601 format var serializerSettings = new JsonSerializerSettings(); serializerSettings.Converters.Add(new IsoDateTimeConverter()); var config = HttpHostConfiguration.Create(); config.Configuration.OperationHandlerFactory.Formatters.Clear(); config.Configuration.OperationHandlerFactory.Formatters.Insert(0, new JsonNetMediaTypeFormatter(serializerSettings)); } 

Ma quando eseguo il servizio utilizza ancora DataContractJsonSerilizer per la serializzazione. Di seguito è riportata la class di ritorno dal mio servizio.

 [DataContract] public class SampleItem { [DataMember] public int Id { get; set; } [DataMember] public string StringValue { get; set; } [DataMember] public DateTime DateTime { get; set; } } 

Di seguito è riportata la risposta del servizio in Fiddler.

inserisci la descrizione dell'immagine qui

Puoi vedere che DateTime non è nel formato ISO che ho specificato in serializerSettings nel codice sopra. Questo mi dice che il serializzatore JSON.NET non è usato per serializzare gli oggetti.

    Gradirei qualsiasi aiuto.

    Mi sento stupido dopo aver capito la risposta. Succede a volte :). Ho dovuto aggiungere la configurazione al RouteTable. Di seguito è riportato il codice in Global.asax

     public class Global : HttpApplication { void Application_Start(object sender, EventArgs e) { RegisterRoutes(); } private void RegisterRoutes() { // Create Json.Net formatter serializing DateTime using the ISO 8601 format var serializerSettings = new JsonSerializerSettings(); serializerSettings.Converters.Add(new IsoDateTimeConverter()); var config = HttpHostConfiguration.Create().Configuration; config.OperationHandlerFactory.Formatters.Clear(); config.OperationHandlerFactory.Formatters.Insert(0, new JsonNetMediaTypeFormatter(serializerSettings)); var httpServiceFactory = new HttpServiceHostFactory { OperationHandlerFactory = config.OperationHandlerFactory, MessageHandlerFactory = config.MessageHandlerFactory }; RouteTable.Routes.Add(new ServiceRoute("Service1", httpServiceFactory, typeof(Service1))); } } 

    Spero che possa aiutare qualcuno se capitasse di imbattersi nello stesso scenario.