C# 如何获取JSON.NET JSchema生成器以在JSON模式中呈现additionalProperties属性

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

我正在使用JSON.NET JSchema Generator基于用数据注释属性修饰的类创建模式。我是这样使用发电机的:

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)拒绝附加属性;
}