Веб-API ASP.NET и класс [Serializable] - программирование

Веб-API ASP.NET и класс [Serializable]

У меня есть класс, помеченный [Serializable]. Когда я возвращаю его из веб-API, имена полей все напуганы.

Обычно возвращается JSON

[{"OrderId":797 ...

JSON возвращается при использовании [Serializable]

[{"<OrderId>k__BackingField":797 ...

Я не хочу отмечать сериализуемое использование BinaryFormatter для кэширования. Есть ли другой способ, чем написать собственный сериализатор или создать двойной класс, который не является сериализуемым, и написать код обезьяны для "броска" между двумя?

4b9b3361

Ответ 1

Вам просто нужен этот однострочный шрифт, чтобы Json.NET снова проигнорировал семантику [Serializable]:

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

Лучшим решением для вас может стать избавиться от [Serializable] вообще, перестать использовать BinaryFormatter и вместо этого использовать другой сериализатор, чтобы делать все, что вы хотите сделать, например, сериализатор Json.NET.