我只发现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<TopClientOptions>(Configuration.GetSection("topClient"));

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

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

public class DefaultTopClient : ITopClient
{public DefaultTopClient(IOptions<TopClientOptions> options){}
} 

相关随笔:.NET Core类库项目中如何读取appsettings.json中的配置

.NET Core 中 IOptions 有什么用相关推荐

  1. ASP.NET Core中的响应压缩

    介绍 响应压缩技术是目前Web开发领域中比较常用的技术,在带宽资源受限的情况下,使用压缩技术是提升带宽负载的首选方案.我们熟悉的Web服务器,比如IIS.Tomcat.Nginx.Apache等都可以 ...

  2. 在ASP.NET Core中创建自定义端点可视化图

    在上篇文章中,我为构建自定义端点可视化图奠定了基础,正如我在第一篇文章中展示的那样.该图显示了端点路由的不同部分:文字值,参数,动词约束和产生结果的端点: 在本文中,我将展示如何通过创建一个自定义的D ...

  3. 在Asp.NET Core中如何优雅的管理用户机密数据

    在Asp.NET Core中如何优雅的管理用户机密数据 背景 回顾 在软件开发过程中,使用配置文件来管理某些对应用程序运行中需要使用的参数是常见的作法. 在早期VB/VB.NET时代,经常使用.ini ...

  4. 如何在 ASP.Net Core 中使用 Consul 来存储配置

    原文: USING CONSUL FOR STORING THE CONFIGURATION IN ASP.NET CORE 作者: Nathanael [译者注:因急于分享给大家,所以本文翻译的很仓 ...

  5. .net core 中的[FromBody]

    一.针对.net core中post类型的api注意的地方(前提是Controller上加[ApiController]特性).默认是这个. 1.如果客户端Content-Type是applicati ...

  6. 如何使用C#在ASP.NET Core中轻松实现QRCoder

    by Yogi 由瑜伽士 如何使用C#在ASP.NET Core中轻松实现QRCoder (How to easily implement QRCoder in ASP.NET Core using ...

  7. 使用Novell.Directory.Ldap.NETStandard在.NET Core中验证AD域账号

    Novell.Directory.Ldap.NETStandard是一个在.NET Core中,既支持Windows平台,又支持Linux平台,进行Windows AD域操作的Nuget包. 首先我们 ...

  8. transactionscope 中的异步 处理 异常_.NET Core中TransactionScope事务处理方法介绍及注意事项...

    作者:依乐祝 原文链接:https://www.cnblogs.com/yilezhu/p/10170712.html 今天在写CzarCms的UnitOfWork的使用使用到了这个Transacti ...

  9. 探讨.NET Core中实现AES加密和解密以及.NET Core为我们提供了什么方便!

    前言 对于数据加密和解密每次我都是从网上拷贝一份,无需有太多了解,由于在.net core中对加密和解密目前全部是统一了接口,只是做具体的实现,由于遇到过问题,所以将打算基本了解下其原理,知其然足矣, ...

  10. .NET Core 中的并发编程

    今天我们购买的每台电脑都有一个多核心的 CPU,允许它并行执行多个指令.操作系统通过将进程调度到不同的内核来发挥这个结构的优点. 然而,还可以通过异步 I/O 操作和并行处理来帮助我们提高单个应用程序 ...

最新文章

  1. 用OpenCV实现页面扭曲矫正
  2. windows1064安装oracle,在Windows 10系统下安装Oracle 11g数据库
  3. 拉杰尔安卓服务器注册上限,拉结尔多开养小号刷副本 用多多云手机离线能升级...
  4. idea中查看类的继承关系图
  5. 麒麟系统兼容安卓生态 弥补生态短板
  6. TortoiseGit 本地仓库和远程仓库建立联系_入门试炼_02
  7. redis stream java消息队列_Redis 异步消息队列与延时队列
  8. ufw禁止IP访问ubuntu服务器
  9. Python之Pandas库
  10. 在线教学视频的设计与实现
  11. 【书单】NLP秘笈,从入门到进阶
  12. shell脚本启动语法错误syntax error near unexpected token '{
  13. Struts2-02-OGNL及值栈
  14. 解码隆基模式:光伏企业的百亿成长之路
  15. linux时钟(时间)同步
  16. linux V4L2子系统——v4l2的结构体(1)之v4l2_device
  17. 黑马头条登录到个人中心页面
  18. python 实现贷款计算
  19. 剑魂之刃服务器维护,《剑魂之刃》今日安卓版本更新服务器维护公告
  20. matlab中如何转动三维图_MATLAB小技巧之:绕任意空间轴旋转三维图形

热门文章

  1. 博文视点大讲堂28期:助你赢在软件外包行业
  2. plt.Circle()
  3. Maximum Submatrix Largest Rectangle
  4. Android如何谷歌搜索,android – 如何从谷歌地方检索搜索建议?
  5. matlab2016限制内存,matlab
  6. HarmonyOS 组件篇
  7. Android 帧动画 (一)
  8. annotation:@Override出现The method of type must override asuperclass解决方案
  9. 移动端网站如何开发(电脑端网站到手机端网站我们需要在html代码中添加哪个meta标签)...
  10. 信息系统项目管理师 高级 论文备考专题 老师现场写论文