RicoSuter/NJsonSchema

Propagate item-level validation on string arrays from JSON schema to C# object model

开放

#1,292 创建于 2020年12月8日

 (2 条评论) (0 个反应) (0 位负责人)C# (549 个派生)github user discovery
help wantedproject: NJsonSchema.CodeGeneration.CSharptype: enhancement

仓库指标

星标
 (1,581 个星标)
PR 合并指标
 (平均合并 39天 6小时) (30 天内合并 1 个 PR)

描述

I have a string array field which validates not only the length of the array, but the length of the strings in the array as well:

"Tags": {
      "type": "array",
      "minItems": 1,
      "maxItems": 16,
      "items": {
        "type": "string",
        "minLength": 1,
        "maxLength": 3
      }
    },

However, when converted to a C# OM, the per-item validation gets lost:

[Newtonsoft.Json.JsonProperty("Tags", Required = Newtonsoft.Json.Required.DisallowNull, NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore)]
[System.ComponentModel.DataAnnotations.MinLength(1)]
[System.ComponentModel.DataAnnotations.MaxLength(16)]
public System.Collections.Generic.ICollection<string> Tags { get; set; }

I don't have a bright idea on how this validation criteria could live in the .NET world, it's possible that there's no way to currently phrase that using the DataAnnotations, but I'm hoping to be surprised!

贡献者指南