Victoria, parte de este staff, nos hizo el favor de redactar esta crónica ya que domina perfectamente dicho tema.
Solución:
Eliminar [Serializable]
de tu clase
El serializador WebApi predeterminado agregará esa sintaxis “__BackingField:” a las propiedades automáticas de C#. Agregue esto a su WebConfig en App_Start para obtener el json de aspecto más limpio que podría estar buscando.
using Newtonsoft.Json;
...
config.Formatters.JsonFormatter.SerializerSettings = new JsonSerializerSettings();
En realidad, no se recomienda la sintaxis de propiedad automática si la clase se puede usar en la serialización. El motivo es que el compilador genera el campo de respaldo, que puede ser diferente cada vez que se compila el código. Esto puede causar problemas de incompatibilidad incluso si no se realiza ningún cambio en la clase (solo se vuelve a compilar el código).
Creo que aplicando DataMember attribute solucionará el problema en este caso. Pero recomendaría usar la sintaxis de propiedad completa, si la clase debe usarse en la serialización.
Sección de Reseñas y Valoraciones
Acuérdate de que te concedemos añadir una estimación si te ayudó.