Есть ли способ определить, присутствует ли обнуляемый параметр в теле запроса Нэнси? - PullRequest
1 голос
/ 07 мая 2019

Фон

У меня есть веб-сервер, использующий Nancy 1.4.3. Привязка модели Нэнси используется для десериализации данных из HTTP-запроса с телом json. Смотрите пример ниже.

Пример

Конечная точка на сервере:

private class ARequestBody
{
    public int? Parameter1 { get; set; }
    public int? Parameter2 { get; set; }
}

[Post("examplerequest")]
public Response AMethod()
{
    var body = this.Bind<ARequestBody>

    //Do stuff with data in body
    var foo = body.Parameter1;
    var bar = body.Parameter2;

    return new Response();
}

Запрос к конечной точке:

Method: POST
Path: [server_address_etc]/examplerequest
Body:
{
    "Parameter1" : 123,
    "Parameter2" : null
}

Если запрос сделан к этой конечной точке, где, например, Parameter1 является нулем в теле запроса, body.Parameter1 по понятным причинам будет иметь значение null после привязки. Однако, если Parameter1 не включен в запрос, body.Parameter1 также будет нулевым.

Вопрос

Есть ли способ определить, включен ли параметр в тело запроса? Если возможно, я хочу иметь возможность различать:

  1. обнуляемый параметр, включаемый в тело запроса, но со значением null
  2. , если параметр вообще не включен в тело запроса.
...