C# 有没有办法在OpenApi v3规范属性中明确地设置nullable:false?

C# 有没有办法在OpenApi v3规范属性中明确地设置nullable:false?,c#,swagger,openapi,nswag,C#,Swagger,Openapi,Nswag,我试图将OpenAPI规范中的一个属性设置为required和nullable:false,正如我提供的C中所指定的那样 我正在使用NSwag v13.1.3和NewtonSoft.Json v12.0.2以及.NETCore2.2 我尝试过使用NewtonSoft.Json和NJsonSchema.Annotations传递各种组合,以将NotNull强制到字段上,但是在任何组合中都不可能使用null:false 我还尝试使用NSwagStudio生成与下面相同的代码,但是在规范中nullab

我试图将OpenAPI规范中的一个属性设置为required和nullable:false,正如我提供的C中所指定的那样

我正在使用NSwag v13.1.3和NewtonSoft.Json v12.0.2以及.NETCore2.2

我尝试过使用NewtonSoft.Json和NJsonSchema.Annotations传递各种组合,以将NotNull强制到字段上,但是在任何组合中都不可能使用null:false

我还尝试使用NSwagStudio生成与下面相同的代码,但是在规范中nullable没有设置为false

using Newtonsoft.Json;

public class Test {

[JsonProperty("test", Required = Required.Always)]
     public string Test { get; set; }

[JsonProperty("testnullable", Required = Required.AllowNull)]
    public string TestNullable { get; set; }

}
我希望这将为OpenApi规范提供一个nullable:false和nullable:true,但这是所提供的:-

"required": [          
      "test",
      "testnullable"
          ],
"properties": {
               "test": {
                  "type": "string"
                        },
               "testnullable": {
                  "type": "string",
                  "nullable": true
              }

默认情况下,Nullable为false。这就是为什么它没有爆炸性地设置为false。

默认情况下,Nullable为false。这就是为什么它没有爆炸性地设置为false。

您可以使用[Required]属性来显示此数据是有保证的

[DisplayName("Location")]
    public class LocationDtoOut {

        [Required]
        public decimal lat { get; set; }

        [Required]
        public decimal lng { get; set; }

        public LocationDtoOut(decimal lat, decimal lng) {
            this.lat = lat;
            this.lng = lng;
        }
    }
您可以使用[Required]属性来显示此数据是有保证的

[DisplayName("Location")]
    public class LocationDtoOut {

        [Required]
        public decimal lat { get; set; }

        [Required]
        public decimal lng { get; set; }

        public LocationDtoOut(decimal lat, decimal lng) {
            this.lat = lat;
            this.lng = lng;
        }
    }

似乎不是这样:@MarkusMeyer我读到了,并且有这样的印象,如果它可以设置为null:true,那么它肯定可以设置为null:false,但它似乎不是这样:@MarkusMeyer我读到了,并且有这样的印象,如果它可以设置为null:true,那么它肯定可以设置为null:false,但它似乎不是在使用nSwag的angular项目中设置tsconfig.json strict:true时,这种情况对我很有效。我必须将该属性添加到类的任何IList属性中,因为默认情况下,它允许在自动生成的typescript类中未定义这些属性。这在angular编译器中创建了很多错误。在使用nSwag的angular项目中设置tsconfig.json strict:true时,这对我来说是有效的。我必须将该属性添加到类的任何IList属性中,因为默认情况下,它允许在自动生成的typescript类中未定义这些属性。这在angular编译器中产生了很多错误。