Я работаю над ASP.NET Web API, который позволяет XML и JSON форматы за свои ресурсы. Тип модели ресурса для одной из моих служб веб-API имеет свойство, которое пользователи не будут отправлять. Но я должен установить это в ответ, что я отправлю обратно.Есть ли эквивалент JsonSerializerSettings.MissingMemberHandling для сериализации XML во время обработки запросов API?
Например, есть запрос POST, в котором пользователи хотели бы сохранить новый элемент в базе данных. И мой сервис отвечает той же моделью ресурсов и дополнительным свойством, указывающим, что он сохраняется.
Я добавил это дополнительное свойство в свою модель ресурсов. Когда я тестирую его в Fiddler, передающем XML-запрос, он жалуется на HTTP400
, говоря, что новое свойство отсутствует. С входом JSON он работает нормально, вероятно, из-за настройки JSON по умолчанию JsonSerializerSettings.MissingMemberHandling
.
Есть ли у нас эквивалентное свойство для де-сериализации XML?
вход Пример XML:
<MyResource>
<Property1>ABC</Property1>
<Property2>DEF</Property2>
</MyResource>
Пример вывода XML, что я намерен отправить:
<MyResource>
<Property1>ABC</Property1>
<Property2>DEF</Property2>
<Id>123</Id>
</MyResource>
Ошибка выглядит следующим образом:
The property Id was missing
Моя модель ресурсов выглядит следующим образом:
public string Property1 { get; set; }
public string Property2 { get; set; }
public int Id { get; set; }
Я украсил модель 'DataContract' и свойство с помощью DataMember (IsRequired = false)'. По-прежнему получается такая же ошибка. Пытаясь вникнуть в настройки форматов медиа-типа, чтобы увидеть, нужно ли мне что-то там подстроить. –