У меня есть модель, определенная для моего веб-API:
public class MyRequest
{
public int id { get; set; }
public string name { get; set; }
public short? location { get; set; }
}
Функция принимает модель в качестве параметра:
public MyResponse Post(MyRequest request)
{
...
doSomeStuff();
...
}
Мне нужны как имя, так и свойства местоположениямодель по желанию.Если они не переданы, функция должна видеть их как нулевые и оценивать их как таковые.
Это работает нормально, когда данные передаются как JSON:
{
"id":100,
"location":1
}
Запросдесериализован, и объект имеет идентификатор 100, ноль для имени и местоположение 1.
Однако это не работает для XML:
<MyRequest>
<id>100</id>
<location>1</location>
</MyRequest>
Объект запросаnull - я предполагаю, потому что объект не может десериализоваться.Если я добавлю отсутствующий элемент в запрос XML, он будет работать правильно.Так что я знаю, что функция и форматирование XML / вызова правильные.Проблема возникает только в том случае, если элемент отсутствует.
Я попытался добавить [XmlElement(IsNullable = true)]
к свойствам, которые я хотел бы сделать необязательными, но это не имеет значения.
Примечание.используя XmlSerializer вместо DataContractSerializer по умолчанию.
Любая помощь будет принята с благодарностью.