Код: Выделить всё
public class Options
{
[Required]
public required string Endpoint { get; set; }
}
Код: Выделить всё
public static IServiceCollection AddOptions(this IServiceCollection services, IConfigurationSection section)
{
var options = new Options();
section.Bind(options);
....
}
Ошибка CS9035: обязательный элемент «Options.Endpoint» должен быть устанавливается в инициализаторе объекта или конструкторе атрибута.
Поскольку я знаю, что .Bind() ниже (в сочетании с [Required]< Проверка атрибута /code> и настроек (здесь не показана)) позволит убедиться, что все свойства Options установлены правильно, я хочу отключить предупреждение компилятора.
К сожалению, добавление #pragma предупреждение отключить CS9035 не дает никакого эффекта.
Я знаю, я могу инициализировать требуемый член конечной точки в конструкторе вот так, но это не кажется хорошо и выглядит неуклюже:
Код: Выделить всё
var openAIOptions = new OpenAIOptions { Endpoint = null! }
Подробнее здесь: https://stackoverflow.com/questions/783 ... s9035-once
Мобильная версия