我有一个这样的Options
类(注意required
关键字):
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);
....
}
构造函数行现在让编译器抱怨:
错误CS 9035:必须在对象初始化项或属性构造函数中设置必需的成员"Fields. Dock".
由于我知道下面的.Bind()
(与[Required]
属性和设置验证(此处未显示)结合)将确保Options
的所有属性都正确设置,因此我想禁用编译器警告.
不幸的是,添加#pragma warning disable CS9035
没有任何效果.
我知道,我可以像这样初始化构造器中所需的Endpoint
成员,但感觉不好,看起来很尴尬:
var openAIOptions = new OpenAIOptions { Endpoint = null! }
我还有哪些其他 Select ?