NSwag生成原始字段为Nullable

时间:2018-06-21 17:37:54

标签: c# asp.net-web-api swagger nswag

我在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属性。我想念什么吗?

0 个答案:

没有答案