Nos encontramos en una situación en un proyecto de MVC3 con los serializadores JSON de Microsoft y JSON.NET.Configure JSON.NET para ignorar los atributos de DataContract/DataMember
Todo el mundo sabe que los DateTime están básicamente rotos en los serializadores de Microsoft, así 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 conjunto al que se hace referencia en múltiples lugares. Además, tienen algunas otras propiedades de visualización que no están marcadas como DataMembers para mayor 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 se pasa sobre el lado del cliente WCF puede hacer referencia a que el montaje y el uso de la NombreCompleto muy bien, pero cuando serializado con JSON.NET ve que no es un NombreCompleto [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 el atributo [DataContract]
aplicado?
Nota: Usar el JavaScriptSerializer en .NET funciona bien para la propiedad FullName, pero los DateTimes están rotos. Necesito que JSON.NET ignore el hecho de que esta clase tiene atributos DataContract/DataMember y simplemente hace la serialización estándar del campo público como lo haría si no estuvieran allí.
¿Resolvió esto? Estoy teniendo exactamente el mismo problema y necesito encontrar una resolución –
Terminé agregando el atributo JsonProperty para Json.Net – Nick