Исключить свойство из сериализации json в ApiController
Я пытаюсь исключить свойства из сериализации в JSON в веб-ApiControllers. Я проверил следующие 2 сценария работы.
Я включил следующие атрибуты в свойство, которое я хочу исключить.
<code>[System.Web.Script.Serialization.ScriptIgnore] [System.Xml.Serialization.XmlIgnore] </code>
Если я вручную сериализую свой объект с помощью JavaScriptSerializer, свойство будет исключено. Кроме того, если я просматриваю сериализованный вывод XML из веб-ApiController, свойство исключается. Проблема в том, что сериализованный JSON через веб-интерфейс ApiController все еще содержит это свойство. Есть ли другой атрибут, который я могу использовать, который исключит свойство из сериализации JSON?
UPDATE:
Я понял, что все мои тесты были в гораздо более сложном проекте, и что я не пробовал это в изолированной среде. Я сделал это и все еще получаю те же результаты. Вот пример некоторого кода, который терпит неудачу.
<code>public class Person { public string FirstName { get; set; } [System.Web.Script.Serialization.ScriptIgnore] [System.Xml.Serialization.XmlIgnore] public string LastName { get; set; } } public class PeopleController : ApiController { public IEnumerable<Person> Get() { return new[] { new Person{FirstName = "John", LastName = "Doe"}, new Person{FirstName = "Jane", LastName = "Doe"} }; } } </code>
Вот сгенерированный вывод.
JSON:
<code>[ { "FirstName" : "John", "LastName" : "Doe" }, { "FirstName" : "Jane", "LastName" : "Doe" } ] </code>
XML:
<code><?xml version="1.0" encoding="utf-8"?> <ArrayOfPerson xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <Person> <FirstName>John</FirstName> </Person> <Person> <FirstName>Jane</FirstName> </Person> </ArrayOfPerson> </code>