我在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当它显然是服务端必需的Non-Nullable属性时将其转换为NUllable属性。我想念什么吗?