Configure JSON.NET para ignorar los atributos de DataContract / DataMember

Nos encontramos ante una situación en un proyecto MVC3 con los serializadores JSON de Microsoft y JSON.NET.

Todo el mundo sabe que los DateTime están básicamente dañados en los serializadores de Microsoft, por lo que cambiamos a JSON.NET para evitar este problema. Eso funciona muy bien, excepto que algunas de las clases que intentamos serializar son POCO con atributos DataContract / DataMember. Se definen en un ensamblaje al que se hace referencia en varios lugares. Además, tienen algunas otras propiedades de visualización que no están marcadas como miembros de datos por su eficiencia. Por ejemplo, un cliente

[DataContract]
public class Customer
{
   [DataMember]
   public string FirstName { get; set;}
   [DataMember]
   public string LastName { get; set;}
   public string FullName 
   {
       get
       {  return FirstName + " " + LastName; }
   }

}

Cuando este cliente pasa a través de WCF, el lado del cliente puede hacer referencia a ese conjunto y usar el FullName muy bien, pero cuando se serializa con JSON.NET, se ve que FullName no es un[DataMember] y no lo serializa. ¿Hay una opción para pasar a JSON.NET para decirle que ignore el hecho de que una clase tiene[DataContract] atributo aplicado?

Nota: El uso del JavaScriptSerializer en .NET funciona bien para la propiedad FullName, pero los tiempos de fecha están rotos. Necesito que JSON.NET ignore el hecho de que esta clase tiene atributos DataContract / DataMember y que solo realice la serialización de campos públicos estándar, como si no estuvieran allí.

Respuestas a la pregunta(6)

Su respuesta a la pregunta