Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/261.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Swagger,NswagStudio,c#,Required=Newtonsoft.Json.Required.DisallowNull,如何处理_C#_Json.net_Swagger_Nswag - Fatal编程技术网

Swagger,NswagStudio,c#,Required=Newtonsoft.Json.Required.DisallowNull,如何处理

Swagger,NswagStudio,c#,Required=Newtonsoft.Json.Required.DisallowNull,如何处理,c#,json.net,swagger,nswag,C#,Json.net,Swagger,Nswag,给定:在更改方面,我对api的影响有限,它是基于NetCore2.2构建的。使用Standart netCore招摇过市。某些数据类中的字段标记为 [System.ComponentModel.DataAnnotations.Required]但出于某些原因(也可以讨论) 某些方法返回此类的对象,该字段中的值为空。注释导致 "required": [ "given", - this field for example "family", "e

给定:在更改方面,我对api的影响有限,它是基于NetCore2.2构建的。使用Standart netCore招摇过市。某些数据类中的字段标记为
[System.ComponentModel.DataAnnotations.Required]
但出于某些原因(也可以讨论) 某些方法返回此类的对象,该字段中的值为空。注释导致

"required": [
        "given",    - this field for example
        "family",
        "email",
        "postCode"
      ],
      "type": "object",
      ...
大摇大摆 这就导致了

[Newtonsoft.Json.JsonProperty("given", Required = Newtonsoft.Json.Required.DisallowNull, NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore)] 
在c#生成的代码中(我使用的是nswag studio和c#client,具有非常标准的设置)。然后,当我试图使用生成的c#client从api中获取这些对象的列表时,如果其中一些属性为null,则会明显抛出newtonsoft反序列化异常。 那我们怎么处理呢?我想到了客户端和服务器端解决方案:

1) 在服务器上,我们可以配置为不公开有关swagger spec所需的信息

2) 在客户端上,我们可以配置将所需块转换为Required=Newtonsoft.Json.Required.Default的行为

3) 忘记所有这些,坚持让api不会返回属性市场所需的空值的对象