我正在尝试使用 NJsonSchema 生成 C# 类,但它正在为数组“anonymous_”中的对象命名类。
例如,这个 json 模式片段
“身份标识”: {
“类型”:“数组”,
“项目”: {
“类型”:“对象”,
“特性”: {
“ID”: {
“类型”:“字符串”
},
“ID 类型”:{
“类型”:“字符串”
}
},
“必需的”: [
“ID”,
“ID 类型”
]
}
生成此 C# 属性和类
[Newtonsoft.Json.JsonProperty(“标识符”,必需 = Newtonsoft.Json.Required.Always)]
[System.ComponentModel.DataAnnotations.Required]
公共 System.Collections.ObjectModel.ObservableCollection<Anonymous> 标识符 { get; 放; } = new System.Collections.ObjectModel.ObservableCollection<Anonymous>();
[System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "9.3.0.0")]
公共部分类匿名
{
[Newtonsoft.Json.JsonProperty("ID", 必需 = Newtonsoft.Json.Required.Always)]
[System.ComponentModel.DataAnnotations.Required]
公共字符串 ID { 获取;放; }
[Newtonsoft.Json.JsonProperty("IDType", 必需 = Newtonsoft.Json.Required.Always)]
[System.ComponentModel.DataAnnotations.Required]
公共字符串 IDType { 获取;放; }
公共字符串 ToJson()
{
返回 Newtonsoft.Json.JsonConvert.SerializeObject(this);
}
公共静态匿名FromJson(字符串数据)
{
返回 Newtonsoft.Json.JsonConvert.DeserializeObject<Anonymous>(数据);
}
}
想知道是否有一种方法可以强制 NJsonSchema 根据集合名称的单数化版本来命名集合中的对象(例如,在这种情况下,我希望将anonymous类命名为类似的名称,Identifier因为该类描述了名为 的集合中的对象Identifiers)。我已尝试为此使用自定义 TypeNameGenerator,但未向该Generate函数提供集合的名称。