IOptions and context

Option在是配置,一般存储值,在全局是可读的,其值初始化一般在启动时,通过Configure通过配置文件,动态配置,中途不更改。

Startup的ConfigureServices()添加下面的代码

可以通过  Configure<TOptions>(IConfiguration config)  或  Configure<TOptions>(Action<TOptions> configureOptions)

在需要读取配置的地方只需通过构造函数注入即可:如

 public IndexModel(
            IOptions<SettingManagementPageOptions> options, 
            IServiceProvider serviceProvider)
        {
            _serviceProvider = serviceProvider;
            _options = options.Value;
        }

AbpApplicationCreationOptions,在AbpApplication构建函数进创建,它的值通过创建工厂时,委托方式进行,属于赋值在前创建在后,紧接着调用委任实现赋值。

IServiceCollection用于可以Autofac,(还可以提前在IHostBuilder),Serilog等三方服务提前注入

2、AbpDbContextOptions

DefaultPreConfigureActions

DefaultConfigureAction

PreConfigureActions

而context是提供运行时上下文,作了对象通讯传递使用,常用作在方法参数传递

比如ApplicationInitializationContext,用于模块的应用运行时提供ServiceProvider,其创建在AbpApplication创建的应用时,ModuleManager进行应用运行各个状态进行调用 

ServiceConfigurationContext:提供模块服务注册时使用,AbpApplication创建就需要IServicesCollection,它再通过ServiceConfigurationContext进行包装一下,再传递给各个应用配置各个阶段,在ConfigureServices结束后设置为null

原文地址:https://www.cnblogs.com/cloudsu/p/11163076.html