API Web ASP.NET et classe

J’ai une classe qui est marquée avec [Serializable]. Quand je le retourne de l’API Web, les noms de champs sont géniaux

Normalement, le JSON renvoyé est

[{"OrderId":797 ... 

JSON renvoyé lors de l’utilisation de [Serializable]

 [{"k__BackingField":797 ... 

Je ne veux pas le marquer sérialisable pour utiliser un BinaryFormatter pour la mise en cache. Existe-t-il un autre moyen que d’écrire un sérialiseur personnalisé ou de créer une classe jumelle non sérialisable et d’écrire du code Monkey afin de le “transtyper” entre les deux?

Vous avez juste besoin de cette ligne unique pour que Json.NET ignore à nouveau la sémantique [Serializable]:

 ((DefaultContractResolver)config.Formatters.JsonFormatter.SerializerSettings.ContractResolver).IgnoreSerializableAtsortingbute = true; 

Une meilleure solution pour vous serait peut-être de vous débarrasser de [Serializable], d’arrêter d’utiliser BinaryFormatter et d’utiliser un autre sérialiseur pour faire tout ce que vous voulez faire, comme le sérialiseur Json.NET, par exemple.