首页 > 解决方案 > NJsonSchema:如果我知道我的模式中的一个字段在运行时只能有几个有限值,我可以将它添加到我的验证逻辑中吗?

问题描述

以他们的 GitHub为例,如果我在运行时知道名字只能是“Bob”或“Bill”,我可以对此进行验证吗?

public class Person
{
    [Required]
    public string FirstName { get; set; }

    public string MiddleName { get; set; }

    [Required]
    public string LastName { get; set; }

    public Gender Gender { get; set; }

    [Range(2, 5)]
    public int NumberWithRange { get; set; }

    public DateTime Birthday { get; set; }

    public Company Company { get; set; }

    public Collection<Car> Cars { get; set; }
}

标签: c#jsonnjsonschema

解决方案


如果一个字符串只能是一些给定的预定义值,那么它必须用 JSON Schema 枚举来描述......这里我会用一个自定义模式处理器(ISchemaProcessor)来实现它,它添加了枚举信息和一个自定义属性来应用它.

https://github.com/RSuter/NJsonSchema/wiki/Schema-Processors


推荐阅读