指示NJsonSchema将自定义字典视为常规Dictionary

本文关键字:Dictionary string Something 常规 NJsonSchema 自定义 字典 指示 | 更新日期: 2023-09-27 18:16:56

假设我有这些配置类:

public class Config
{
    [Required]
    public ConfigDictionary<string> Files { get; set; }
}
public class ConfigDictionary<T> : Dictionary<string, T>
{
    public ConfigDictionary() : base(StringComparer.InvariantCultureIgnoreCase) { }
}

我这样做:

var json = File.ReadAllText(config);
var schema = JsonSchema4.FromType<Config>();
var validationResults = schema.Validate(json);

NJsonSchema以我期望的方式处理Dictionary<string, string>,但是作为ConfigDictionary<string>的Files属性不像我期望的那样被视为字典。

是否有办法让NJsonSchema像对待Dictionary<string, T>一样对待ConfigDictionary<T> ?

指示NJsonSchema将自定义字典视为常规Dictionary<string, Something>

我认为你可以编写一个类型映射器并在其中使用FromType: https://github.com/NJsonSchema/NJsonSchema/wiki/Type-Mappers

否则,在项目中创建一个问题,我们可以讨论这个场景