来自,https://docs.microsoft.com/en-us/aspnet/core/fundamentals/configuration
这里的构造是什么,
subOptionsAccessor.Value;
Value
在这里意味着什么?什么是传递?
public class HomeController : Controller
{
private readonly MySubOptions _subOptionsAccessor;
public HomeController(IOptions<MySubOptions> subOptionsAccessor)
{
_subOptionsAccessor = subOptionsAccessor.Value;
}
public IActionResult Index()
{
var subOption1 = _subOptionsAccessor.SubOption1;
var subOption2 = _subOptionsAccessor.SubOption2;
return Content($"subOption1 = {subOption1}, subOption2 = {subOption2}");
}
}
我是否更正了IOptions类型只是意味着,在这种情况下,构造函数将接收一种IOptions,并且此上下文中的Value表示它包含的列表项之一。这就是“MyClass”。 Value表示构造函数(类型为IOptions)中发送的列表中的对象。
答案 0 :(得分:3)
价值在这里意味着什么?
它是IOptions<TOptions>
接口的属性,根据the documentation,返回“已配置的TOptions
实例”。
传递的内容是什么?
无。 返回一个值 - 没有字段或属性getter的输入。
您似乎认为Value
是C#中的某些“特殊”关键字或属性,但实际情况并非如此。它只是该类型的正常属性 - 它返回的是它被编程返回的任何东西。
例如,Nullable<T>
类型用于将值类型(例如int
,double
)包装在可能为null的引用类型中。 该类型具有返回基础值的Value
属性。但它已经编程来做到这一点 - 它没有什么神奇之处适用于其他类型。