使用 NJsonSchema.CodeGeneration,我可以输出 JSON 模式中定义的属性。但是,我注意到在生成的代码中,发生了一些事情:
所有属性都
Required = Newtonsoft...DisallowNull
定义了属性。每个属性都设置为一个类的新实例。
例子:
[Newtonsoft.Json.JsonProperty("myProperty", Required = Newtonsoft.Json.Required.DisallowNull, NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore)]
public MyProperty MyProperty { get; set; } = new MyProperty();
问题:
如何使生成的代码允许空值?这些不是 JSON 模式中的必需属性,初始化它们没有意义。另一方面,默认情况下初始化集合类很方便,因此可以迭代它们而不会引发异常(这也是集合的当前行为)。