Веб-API ASP.NET и класс [Serializable]
У меня есть класс, помеченный [Serializable]. Когда я возвращаю его из веб-API, имена полей все напуганы.
Обычно возвращается JSON
[{"OrderId":797 ...
JSON возвращается при использовании [Serializable]
[{"<OrderId>k__BackingField":797 ...
Я не хочу отмечать сериализуемое использование BinaryFormatter для кэширования. Есть ли другой способ, чем написать собственный сериализатор или создать двойной класс, который не является сериализуемым, и написать код обезьяны для "броска" между двумя?
Ответы
Ответ 1
Вам просто нужен этот однострочный шрифт, чтобы Json.NET снова проигнорировал семантику [Serializable]:
((DefaultContractResolver)config.Formatters.JsonFormatter.SerializerSettings.ContractResolver).IgnoreSerializableAttribute = true;
Лучшим решением для вас может стать избавиться от [Serializable] вообще, перестать использовать BinaryFormatter и вместо этого использовать другой сериализатор, чтобы делать все, что вы хотите сделать, например, сериализатор Json.NET.