Asp.net Core 中Options模式注册方式以及获取方式的区别

Asp.net Core

1.Configure

修改配置信息

2.ConfigureAll 

将所有对应的实例统一设置

3.PostConfigure

Configure之后执行

4.PostConfigureAll

Configure之后执行 将所有对应的实例统一设置

5.PreConfigure

Configure之前执行

6.AddOptions

添加选项所需要的服务

Abp VNext写法

 base.Configure(options =>
        {
            options.Resources
                .Get()
                .AddBaseTypes(
                    typeof(AbpUiResource)
                );
        });

获取Options值得方式

IOptions 选项 注册为单例服务 因此一旦生成了,除非通过代码的方式更改,它的值是不会更新的。

(通俗的说就是一开始就初始化了值,修改方式只有代码中进行处理)

IOptionsMonitor 选项监视器  注册为单例服务 但是它通过IOptionsChangeTokenSource<> 能够和配置文件一起更新,也能通过代码的方式更改值(通俗的说在方法执行期间,配置文件修改以后会自动更新值,也可以根据代码来修改值)

IOptionsSnapshot  选项快照 注册为范围服务 所以在配置文件更新的下一次访问,它的值会更新,但是它不能跨范围通过代码的方式更改值,只能在当前范围(请求)内有效(通俗的说当次请求的时候是没法修改其值,只有等配置文件更新后的下次请求访问会更新值)

你可能感兴趣的:(ASP.NET,CORE,.NetCore,Asp.net,core)