RicoSuter/NJsonSchema

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

Open

#1,292 建立於 2020年12月8日

在 GitHub 查看
 (2 留言) (0 反應) (0 負責人)C# (550 fork)github user discovery
help wantedproject: NJsonSchema.CodeGeneration.CSharptype: enhancement

倉庫指標

Star
 (1,578 star)
PR 合併指標
 (30 天內沒有已合併 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!

貢獻者指南