Охватывает любые типы: значения, ссылки, сложные пользовательские типы, что угодно
пользуем ASP.NET Web API 2 и хотим предоставить возможность частично редактировать некоторые объекты следующим образом:
HTTP PATCH /customers/1
{
"firstName": "John",
"lastName": null
}
... установитьfirstName
в"John"
а такжеlastName
вnull
.
HTTP PATCH /customers/1
{
"firstName": "John"
}
... для того, чтобы просто обновитьfirstName
в"John"
и не трогайlastName
совсем. Предположим, у нас есть много свойств, которые мы хотим обновить с помощью такой семантики.
Это довольно удобное поведение, которое осуществляетсяOData например.
Проблема в том, что по умолчанию JSON сериализатор просто придумаетnull
в обоих случаях, поэтому невозможно различить.
Я ищу способ аннотировать модель какими-то обертками (со значением и флагом, установленным / не установленным внутри), которые позволили бы увидеть эту разницу. Существуют ли какие-либо решения для этого?