使用主构造函数可以消除很多繁忙的工作。但是,在使用它们时,您似乎需要按原样使用依赖项注入器传入的值。是否可以像使用传统构造函数方法时那样稍微修改一下?
这是一个例子
public class MyService
{
private MySettings _settings;
public MyService(IOptions<MySettings> mySettingsOptions)
{
_settings = mySettingsOptions.Value;
}
}
使用主构造函数,它看起来像这样。您可以看到它小得多,但现在我需要在任何地方都使用
settings.Value
与 settings
。
public class MyService(IOptions<MySettings> settings)
{
}
我发现处理这种情况的最好方法是引入一个第二类变量,如下所示。现在
_settings
可以在没有 Value
参考的情况下使用。
public class MyService(IOptions<MySettings> settings)
{
private readonly MySettings _settings = settings.Value;
}