C# 如何获取JSON.NET JSchema生成器以在JSON模式中呈现additionalProperties属性
我正在使用JSON.NET JSchema Generator基于用数据注释属性修饰的类创建模式。我是这样使用发电机的:C# 如何获取JSON.NET JSchema生成器以在JSON模式中呈现additionalProperties属性,c#,json.net,jsonschema,C#,Json.net,Jsonschema,我正在使用JSON.NET JSchema Generator基于用数据注释属性修饰的类创建模式。我是这样使用发电机的: var generator = new JSchemaGenerator(); generator.ContractResolver = new CamelCasePropertyNamesContractResolver(); generator.SchemaIdGenerationHandling = SchemaIdGenerationHandling.TypeName
var generator = new JSchemaGenerator();
generator.ContractResolver = new CamelCasePropertyNamesContractResolver();
generator.SchemaIdGenerationHandling = SchemaIdGenerationHandling.TypeName;
var schema = generator.Generate(typeof(myType));
string jsonSchema = schema.ToString();
{
"$id": "myType",
"definitions": {
"mySubType" : {
"$id": "mySubType",
"type": [
"object",
"null"
],
"properties": {
"name": {
"type: "string"
}
},
"required": [
"name"
],
"additionalProperties": false
}
},
"type": "object",
"properties": {
"name": {
"type": "string"
},
"details": {
"$ref": "mySubClass"
}
},
"required": [
"name",
"details"
],
"additionalProperties": false
}
这将生成一个示例模式,如:
{
"$id": "myType",
"definitions": {
"mySubType" : {
"$id": "mySubType",
"type": [
"object",
"null"
],
"properties": {
"name": {
"type: "string"
}
},
"required": [
"name"
]
}
},
"type": "object",
"properties": {
"name": {
"type": "string"
},
"details": {
"$ref": "mySubType"
}
},
"required": [
"name",
"details"
]
}
我希望能够为myType
和mySubType
生成一个包含附加属性的架构,如下所示:
var generator = new JSchemaGenerator();
generator.ContractResolver = new CamelCasePropertyNamesContractResolver();
generator.SchemaIdGenerationHandling = SchemaIdGenerationHandling.TypeName;
var schema = generator.Generate(typeof(myType));
string jsonSchema = schema.ToString();
{
"$id": "myType",
"definitions": {
"mySubType" : {
"$id": "mySubType",
"type": [
"object",
"null"
],
"properties": {
"name": {
"type: "string"
}
},
"required": [
"name"
],
"additionalProperties": false
}
},
"type": "object",
"properties": {
"name": {
"type": "string"
},
"details": {
"$ref": "mySubClass"
}
},
"required": [
"name",
"details"
],
"additionalProperties": false
}
如何使用JSchema生成器生成这样的模式
是否有一个类级数据注释属性可以做到这一点?有点晚了,但我今天很难做到这一点
void Main()
{
var生成器=新的JSchemaGenerator();
generator.ContractResolver=新的CamelCasePropertyNamesContractResolver();
generator.SchemaIdGenerationHandling=SchemaIdGenerationHandling.TypeName;
var schema=generator.Generate(typeof(myType));
拒绝附加属性(模式);
字符串jsonSchema=schema.ToString();
}
静态void拒绝AdditionalProperties(JSchema模式)
{
schema.AllowAdditionalProperties=false;
foreach(schema.Properties.Values中的var s)拒绝附加属性;
}