我在 C# 中有一个 RESTful WebAPI 2 服务,并且我使用 swagger 作为 API 描述符。现在,在客户端,我正在使用 NSwag,可以在此处找到它来生成客户端代码:https ://github.com/RSuter/NSwag
现在,我已经使用 nSwag 一年多了,我第一次看到这种行为,不确定是我的代码中的某些东西导致它还是 NSwag 本身在起作用,但是当我使用 nSwag 生成客户端时,它生int fields which are marked [Required]
成为 Nullable客户端的属性。在服务端可能如下所示:
[Required]
[Range(1, Int32.MaxValue, ErrorMessage = "GenTrainId must be greater than 0")]
public int MyField { get; set; }
但是,当我在客户端生成它时,它看起来像下面这样:
[Newtonsoft.Json.JsonProperty("genTrainId", Required = Newtonsoft.Json.Required.Default, NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore)]
[System.ComponentModel.DataAnnotations.Range(1, 2147483647)]
public int? GenTrainId
{
get { return _genTrainId; }
set
{
if (_genTrainId != value)
{
_genTrainId = value;
RaisePropertyChanged();
}
}
}
我不知道我的服务端代码的哪一部分告诉 NSwag 将其转换为 NULLable 属性,而它显然是服务端必需的 Non-Nullable 属性。我错过了什么吗?