架构师_程序员_码农网

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 962|回复: 0

[.NET Core] ASP.NET Core(二十一)配置选项 AddOptions 和 Configure 区别

[复制链接]
发表于 2023-6-18 19:56:45 | 显示全部楼层 |阅读模式
需求:在阅读 ASP.NET Core 选项文档的时候,发现选项模式使用类来提供对相关设置组的强类型访问有两种代码“AddOptions”、“Configure”,这两者有什么区别呢?

读取相关配置值的首选方法是使用选项模式。

ASP.NET Core 中的选项模式:https://learn.microsoft.com/zh-cn/aspnet/core/fundamentals/configuration/options?view=aspnetcore-7.0

ConsulOption 对象如下:

appsettings.json 配置如下:

AddOptions 配置

代码如下:


Configure 配置

代码如下:


两者其实是等价的,AddOptions Bind 底层调用的还是 Configure 方法。

OptionsBuilder.Bind(IConfiguration config) 实际上会直接调用 Configure(IConfiguration config),所以它们也是等价的,所以这两个 API 是可以互换的,AddOptions 后来出现并允许更多的自定义项。

OptionsBuilderConfigurationExtensions 代码:https://source.dot.net/#Microsoft.Extensions.Options.ConfigurationExtensions/OptionsBuilderConfigurationExtensions.cs

QQ截图20230618195313.jpg

读取配置

IOptions<TOptions>:单例(Singleton)服务,即在应用启动时进行注册,后续更改配置文件,该 IOptions 将不会同步更新,依然还是旧值
IOptionsSnapshot<TOptions>:生命周期是作用域(Scoped),每次请求都会重新获取一次配置;
IOptionsMonitor<TOptions> :生命周期是单例(Singleton),与 IOptions<TOptions> 不一样的是它会监听配置文件发生的更新,并且自动同步响应。

(完)





上一篇:Consul 在 Windows 测试环境安装教程
下一篇:EF SQL 语句自动生成 IS NULL 或者 IS NOT NULL
码农网,只发表在实践过程中,遇到的技术难题,不误导他人。
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

免责声明:
码农网所发布的一切软件、编程资料或者文章仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。本站信息来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容。如果您喜欢该程序,请支持正版软件,购买注册,得到更好的正版服务。如有侵权请邮件与我们联系处理。

Mail To:help@itsvse.com

QQ|手机版|小黑屋|架构师 ( 鲁ICP备14021824号-2 )|网站地图

GMT+8, 2024-4-27 13:43

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表