Wie kann sichergestellt werden, dass NJsonSchema nur erforderliche Felder enthält?C#

Ein Treffpunkt für C#-Programmierer
Guest
 Wie kann sichergestellt werden, dass NJsonSchema nur erforderliche Felder enthält?

Post by Guest »

Ich verwende NJsonSchema v2.6 zum Generieren des JSON-Schemas für die folgende Klasse:

Code: Select all

[DataContract(Name = "Message", Namespace = "")]
public class AMessageModel
{
[DataMember]
internal Guid MessageId { get; set; }

internal DateTime MessageDate { get; set; }
}

[DataContract(Name = "Message", Namespace = "")]
public class AddUserMessage : AMessageModel
{
[DataMember]
public string AccountName { get; set; }

[DataMember]
public string FistName { get; set; }

[Range(2, 5)]
[DataMember]
public string LastName { get; set; }

[DataMember]
public string Email { get; set; }

[DataMember]
public string Password { get; set; }
}
Das generierte JSON-Schema:

Code: Select all

        {
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"typeName": "AddFitnessHubAccountMessage",
"additionalProperties": false,
"properties": {
"AccountName": {
"type": [
"null",
"string"
]
},
"FistName": {
"type": [
"null",
"string"
]
},
"LastName": {
"type": [
"null",
"string"
]
},
"Email": {
"type": [
"null",
"string"
]
},
"Password": {
"type": [
"null",
"string"
]
}
},
"allOf": [
{
"type": "object",
"typeName": "AMessageModel",
"additionalProperties": false,
"properties": {
"MessageId": {
"type": "string",
"format": "guid"
},
"MessageDate": {
"type": "string",
"format": "date-time"
}
}
}
]
}
Auch wenn die MessageDate-Eigenschaft nicht als DataMember markiert ist, ist sie immer im Schema enthalten. Außerdem enthält das generierte Schema zwei Schemapfade, obwohl es nur einen enthalten sollte. Es scheint, dass der Parser die Eigenschaften nicht reduziert.

UPDATE

Dies behebt das Problem bei der Erstellung mehrerer Schemapfade

Code: Select all

new JsonSchemaGeneratorSettings
{
FlattenInheritanceHierarchy = true
}
GitHub-Problem: https://github.com/NJsonSchema/NJsonSchema/issues/53

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post