Я работаю над динамическим созданием HTML-формы из класса на С#. Мой текущий подход заключается в создании схемы JSON из класса C# с использованием JsonSchemaGenerator включается в Json.NET на стороне сервера, а затем обрабатывает форму из этой схемы JSON на стороне клиента.
Я хочу иметь возможность добавлять свойства схемы JSON, такие как название или описание к свойствам класса C#, но не могу найти простой способ заставить JsonSchemaGenerator включить их в сгенерированную схему.
Я могу добавить эти свойства схемы JSON в сам класс, используя один из атрибутов C# JsonObjectAttribute, JsonArrayAttribute или JsonDictionaryAttribute, но с использованием JsonProperty для свойств, я могу только изменить, является ли свойство обязательным или нет.
По сути, я хочу создать эту схему JSON:
{
"type": "object",
"properties": {
"MyString": {
"type": "string",
"title": "Title for my string"
}
}
}
из этого класса:
class MyClass
{
public string MyString { get; set; }
}
Должен ли я написать собственный JsonConverter или добавить свойства схемы вручную? Разве Json.NET не подходит для этой работы? Является ли схема JSON неправильным форматом для этого? Или это просто какая-то причудливая функция JsonSchemaGenerator, которую я пропустил?