博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
.NET Core 中 IOptions 有什么用
阅读量:7085 次
发布时间:2019-06-28

本文共 1079 字,大约阅读时间需要 3 分钟。

我只发现IOptions的一个用处——方便了在.NET Core应用程序中使用强类型配置。

如果没有IOptions,使用强类型配置需要自己解决下面2个问题:

1)将配置文件(比如appsettings.json)中的配置反序列化至配置类的实例中

2)注入配置类的单例

如果有了IOptions,可以通过  Configure<TOptions>(IConfiguration config)  或  Configure<TOptions>(Action<TOptions> configureOptions) 扩展方法一次搞定上面2个问题。

下面看一个例子,我们在将阿里大于的.NET客户端TopSdk迁移至.NET Core时,想实现通过appsettings.json对客户端进行配置。

{  "topClient": {    "serverUrl": "",    "appKey": "",    "appSecret":  ""  }}

为此定义了一个配置类TopClientOptions:

public class TopClientOptions{    public string ServerUrl { get; set; }    public string AppKey { get; set; }    public string AppSecret { get; set; }}

然后通过在Startup的ConfigureServices()添加下面的代码,就可以将appsettings.json中的配置绑定到TopClientOptions的实例,并完成依赖注入。

services.AddOptions(); services.Configure
(Configuration.GetSection("topClient"));

(注:需要安装NuGet包 Microsoft.Extensions.Options.ConfigurationExtensions )

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

public class DefaultTopClient : ITopClient{    public DefaultTopClient(IOptions
options) { }} 

相关随笔:

转载于:https://www.cnblogs.com/dudu/p/6740966.html

你可能感兴趣的文章
Oracle数据库重复数据删除的三种情况
查看>>
clearfix清除浮动
查看>>
CentOS下vi编辑器用法大全
查看>>
文件的基本操作
查看>>
硬盘修复
查看>>
Citrix User Profile Management 设定参考
查看>>
LVS DR模式搭建、keepalived + LVS
查看>>
Zabbix使用ICMP ping监控网络状况
查看>>
kali学习日记第二篇 -- Nessus
查看>>
哪些企业可以靠工业4.0来升级改造
查看>>
Microsoft Exchange System Attendant 无法启动解决
查看>>
你不得不会的MarkDown--手把手教你掌握MarkDown
查看>>
第7天 YUM与自动部署PXE
查看>>
Debain安装字体,修改默认编码,命令行
查看>>
解决错误:此用户名包含无效字符,请输入有效的用户名。wordpress不能注册中文用户名的问题...
查看>>
如何优雅的选择字体(font-family)
查看>>
nginx中的limit_req限速设置配置示例
查看>>
python34之殇——DJango连接Mysql数据库
查看>>
linux sar 命令详解
查看>>
Python随机生成指定长度字符串并保存到mysql中
查看>>