Я изучал использование функции обязательных членов C# 11 в сочетании с генерацией схемы JSON. В частности, я использую класс JsonSchemaBuilder (из библиотеки JsonEverything) для создания схем JSON, и мне интересно, существуют ли какие-либо планы или сроки поддержки функции обязательных членов C# 11.
На данный момент ключевое слово require в C# 11 гарантирует, что определенные свойства должны быть инициализированы. Я надеюсь, что эту концепцию можно будет интегрировать в JsonSchemaBuilder, чтобы сгенерированная схема автоматически отражала эти требования (например, путем добавления свойств в обязательный список схемы).
Я просмотрел проблемы и обсуждения GitHub для JsonEverything, но не нашел никаких упоминаний об этом. Существует ли рекомендуемый обходной путь или подход для достижения такого поведения прямо сейчас?
Будем очень признательны за любую информацию или подсказки.
Я экспериментировал с маркировка свойств класса, как это требуется в C# 11, а затем создание схем JSON с помощью JsonSchemaBuilder. Я ожидал, что свойства, помеченные как обязательные, автоматически появятся в требуемом массиве схемы. Однако, похоже, это происходит не сразу.
Чего мы хотим:
public class A
{
public required string Name { Get; Set;}
}
Вместо:
public class A
{
[Required]
public required string Name { Get; Set;}
}
Чтобы иметь это свойство в соответствии с требованиями в схеме Json
PD: Этот вопрос является новым и отличается от C# 11 — обнаружение требуемого свойства путем отражения, потому что в настоящее время есть способ узнать, требуется ли это свойство, например:
using System;
using System.Reflection;
using System.Runtime.CompilerServices;
public class Example
{
public required string RequiredProperty { get; set; }
}
public class Program
{
public static void Main()
{
var prop = typeof(Example).GetProperty("RequiredProperty");
bool isRequired = prop.IsDefined(typeof(RequiredMemberAttribute));
Console.WriteLine(isRequired); // Imprimirá "True"
}
}
Как мы создаем JsonSchema:
var schema = new JsonSchemaBuilder()
.Schema("http://json-schema.org/draft-07/schema#")
.Title({title})
.Description({description})
.FromType(type)
.Build();
Подробнее здесь: https://stackoverflow.com/questions/792 ... son-schema
Как сделать так, чтобы члены с обязательным ключевым словом (C# 11) были обязательными в схемах JSON, созданных построит ⇐ C#
Место общения программистов C#
1734453363
Anonymous
Я изучал использование функции обязательных членов C# 11 в сочетании с генерацией схемы JSON. В частности, я использую класс JsonSchemaBuilder (из библиотеки JsonEverything) для создания схем JSON, и мне интересно, существуют ли какие-либо планы или сроки поддержки функции обязательных членов C# 11.
На данный момент ключевое слово require в C# 11 гарантирует, что определенные свойства должны быть инициализированы. Я надеюсь, что эту концепцию можно будет интегрировать в JsonSchemaBuilder, чтобы сгенерированная схема автоматически отражала эти требования (например, путем добавления свойств в обязательный список схемы).
Я просмотрел проблемы и обсуждения GitHub для JsonEverything, но не нашел никаких упоминаний об этом. Существует ли рекомендуемый обходной путь или подход для достижения такого поведения прямо сейчас?
Будем очень признательны за любую информацию или подсказки.
Я экспериментировал с маркировка свойств класса, как это требуется в C# 11, а затем создание схем JSON с помощью JsonSchemaBuilder. Я ожидал, что свойства, помеченные как обязательные, автоматически появятся в требуемом массиве схемы. Однако, похоже, это происходит не сразу.
Чего мы хотим:
public class A
{
public required string Name { Get; Set;}
}
Вместо:
public class A
{
[Required]
public required string Name { Get; Set;}
}
Чтобы иметь это свойство в соответствии с требованиями в схеме Json
PD: Этот вопрос является новым и отличается от C# 11 — обнаружение требуемого свойства путем отражения, потому что в настоящее время есть способ узнать, требуется ли это свойство, например:
using System;
using System.Reflection;
using System.Runtime.CompilerServices;
public class Example
{
public required string RequiredProperty { get; set; }
}
public class Program
{
public static void Main()
{
var prop = typeof(Example).GetProperty("RequiredProperty");
bool isRequired = prop.IsDefined(typeof(RequiredMemberAttribute));
Console.WriteLine(isRequired); // Imprimirá "True"
}
}
Как мы создаем JsonSchema:
var schema = new JsonSchemaBuilder()
.Schema("http://json-schema.org/draft-07/schema#")
.Title({title})
.Description({description})
.FromType(type)
.Build();
Подробнее здесь: [url]https://stackoverflow.com/questions/79288678/how-to-make-members-with-the-required-keyword-c-11-be-required-in-json-schema[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия