Могу ли я один раз отключить правило CS9035?C#

Место общения программистов C#
Ответить
Anonymous
 Могу ли я один раз отключить правило CS9035?

Сообщение Anonymous »

У меня есть такой класс Options (обратите внимание на обязательное ключевое слово):

Код: Выделить всё

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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»