asp.net-core - 我可以根据选项有条件地添加托管服务吗?
问题描述
在 ASP.NET Core 中,我可以使用IServiceProvider.AddOptions
来注册选项。
但是,我还想使用 注册托管服务IServiceProvider.AddHostedService
,前提是选项值为true
。
如何根据选项有条件地添加托管服务?
解决方案
如果我理解你的意思正确,你想使用从其他文件(如 appsettings.json)读取的选项来确定是否添加托管服务。你可以参考以下两种不同的方法:
1.从 Startup.cs ConfigureServices 方法中的 appsetting.json 中读取选项值
var option =Convert.ToBoolean(Configuration.GetSection("Options:value").Value);
if(option)
{
// add hosted services you want
services.AddHostedService<ServiceName>();
}
2.从其他地方的appsetting.json中读取option值
var configuration = new ConfigurationBuilder()
.AddJsonFile(Path.Combine(Directory.GetCurrentDirectory(), "appsettings.json"))
.Build();
var option = Convert.ToBoolean(configuration.GetSection("Options:value").Value);
应用设置.json
"Options":{
"value": true
}
推荐阅读
- reactjs - Redux 工具包操作不知何故不同步
- php - Facebook Conversions API - AuthorizationException(无效参数)
- python - import_public_link() 中的 file_key 参数是什么?
- javascript - 承诺链中的异常处理
- pyspark - 如何批量收集RDD中的元素
- spring-boot - Spring @Transactional 在 CompletionHandler 回调方法中不起作用
- javascript - 用于切换“显示您的位置”的 Javascript 传单地图
- oracle - DBMS_METADATA.PUT(CLOB) 上的 ORA-31607: 调用了 (1) FETCH_XML
- powershell - 我想做一个以计算机名作为参数的脚本
- python - 根据最近十次迭代的改进来衡量,迭代没有取得良好的进展。制作 SRK EoS/Python 时出错