Configurar JSON.NET para ignorar os atributos DataContract / DataMember

Estamos nos deparando com uma situação em um projeto MVC3 com os serializadores Microsoft JSON e o JSON.NET.

Todo mundo sabe que os DateTime são basicamente quebrados nos serializadores da Microsoft, então mudamos para o JSON.NET para evitar esse problema. Isso funciona muito bem, exceto que algumas das classes que estamos tentando serializar são POCOs com atributos DataContract / DataMember. Eles são definidos em um assembly referenciado em vários locais. Além disso, eles têm algumas outras propriedades de exibição que não são marcadas como DataMembers para eficiência. Por exemplo, um cliente

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

}

Quando esse cliente é passado pelo WCF, o lado do cliente pode referenciar esse assembly e usar o FullName bem, mas, quando serializado com o JSON.NET, ele vê que o FullName não é um[DataMember] e não serializa isso. Existe uma opção para passar para JSON.NET para dizer a ele para ignorar o fato de que uma classe tem[DataContract] atributo aplicado?

Nota: Usando o JavaScriptSerializer no .NET funciona bem para a propriedade FullName, mas DateTimes estão quebrados. Eu preciso JSON.NET para ignorar o fato de que esta classe tem atributos DataContract / DataMember e apenas fazer serialização de campo público padrão como se eles não estivessem lá.

questionAnswers(6)

yourAnswerToTheQuestion