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