TOptions的Value属性如何适用于Core中的IOptions?

时间:2018-03-07 17:54:24

标签: asp.net-core-2.0

我正在使用Core 2.0中的接口IOptions

public interface IOptions<out TOptions> where TOptions : class, new()

在我的Startup.cs中,我可以连接它up

// Example #1: Basic options
// Register the ConfigurationBuilder instance which MyOptions binds against.
services.Configure<MyOptions>(Configuration);

private readonly MyOptions _options;

_options = optionsAccessor.Value;

我想知道的是框架如何知道应该是什么价值? “价值”在哪里分配?它看起来与财产中的价值不同。这里的值是一个全班引用。

1 个答案:

答案 0 :(得分:1)

为了检查Options的深度实现,您可以下载Options并调试项目。

  

框架如何知道应该是什么价值?

配置Options时,您已按services.Configure<MyOptions>(Configuration)传递了类型,MyOptions将传递到通用类型TOptions

  

它与财产中的价值不同,它出现了。这里Value是一个全班引用。

Tha ValueTOptions类型,由OptionsManager返回。

public TOptions Value
    {
        get
        {
            return Get(Options.DefaultName);
        }
    }
  

&#34;价值&#34;分配?

Value将由ConfigureNamedOptions配置并由OptionsFactory创建,然后您可以OptionsManager访问它。