.Net core下的配置设置(二)——Option

我在前面的文章.Net core下的配置设置(一)——Configuration中介绍了.net core下配置文件的读取方法,在.net core中,直接从Configuration对象中读取的并不多,大多是用的配置依赖注入的方式Option,本文这里简单的介绍下它的用法。

首先还是以一个简单的配置文件为例:

{
  "section": {
    "key1": "value2",
    "key2": -5
  }
}

如下是读取配置的代码:

static void Main(string[] args)
{
    var configBuilder = new ConfigurationBuilder().AddJsonFile("appsettings.json");
    var config        = configBuilder.Build();

    var service  = new ServiceCollection().Configure<ConfigData>(config.GetSection("section"));
    var provider = service.BuildServiceProvider();

    var option  = provider.GetService<IOptions<ConfigData>>();
    var cfgData = option.Value;
}

class ConfigData
{
    public string Key1 { get; set; }
    public int    Key2 { get; set; }
}

主要步骤如下

  1. 首先构建Configuration,指定配置数据源
  2. 在DI框架中注入Option指定读取方式
  3. 通过DI框架读取Option

看起来更加复杂了, 但这种方式遵循了两个重要软件工程原则:

对于多个应用模块,可能共享同一个配置文件,每个模块但却有不同的配置项。使用这种方式,不同的模块只感知到自己的配置文件,不用感知别的模块的配置,模块依赖更少,功能更加独立,灵活。

另外,Option模式提供了更多的功能:

更多的信息参考官方文档:ASP.NET Core 中的选项模式

原文地址:https://www.cnblogs.com/TianFang/p/10585747.html

时间: 2024-10-06 20:21:53

.Net core下的配置设置(二)——Option的相关文章

.Net core下的配置设置(一)——Configuration

ASP.NET Core 中提供了一个Configuration 包,用以应用配置基于配置提供程序建立的键值对.这里以json文件配置的方式,简单的介绍一下它的用法. 首先定义一个配置文件appsettings.json: {    "key1": "value1",    "key2": -1,        "subsection":  {            "key1": "value2

MySql_x64免安装版在win10下的配置(二)

接上一篇MySql_x64免安装版在win10下的配置(一) 第六步设置mysql密码:可以有三种方法: ①:用SET PASSWORD命令:首先登录MySQL. 格式:mysql> set password for 用户名@localhost = password('新密码'); 例子:mysql> set password for [email protected] = password('123'); ②用mysqladmin 格式:mysqladmin -u用户名 -p旧密码 pass

一起学ASP.NET Core 2.0学习笔记(二): ef core2.0 及mysql provider 、Fluent API相关配置及迁移

不得不说微软的技术迭代还是很快的,上了微软的船就得跟着她走下去,前文一起学ASP.NET Core 2.0学习笔记(一): CentOS下 .net core2 sdk nginx.supervisor.mysql环境搭建搭建好了.net core linux的相关环境,今天就来说说ef core相关的配置及迁移: 简介: Entity Framework(以下简称EF) 是微软以 ADO.NET 为基础所发展出来的对象关系对应 (O/R Mapping) 解决方案,EF Core是Entity

Ubuntu下安装FTP服务及使用(VSFTPD详细设置)(二)

vsftpd 作为一个主打安全的FTP服务器,有很多的选项设置.下面介绍了vsftpd的配置文件列表,而所有的配置都是基于vsftpd.conf这个配置文件 的.本文将提供完整的vsftpd.conf的中文说明.学习本文的内容将有助于你初步了解vsftpd的配置文件,但针对具体情况还需要制定具体的配置 方法. Vsftpd的配置文件: /etc/vsftpd/vsftpd.conf 主配置文件 /usr/sbin/vsftpd Vsftpd 的主程序 /etc/rc.d/init.d/vsftp

Mac之OS系统下搭建JavaEE环境 &lt;二&gt; 之Tomcat 的安装配置

二.Tomcat的安装与配置 1.下载Tomcat 找到Tomcat的官网 百度搜索Tomcat 点击下载即可 下载网址:http://tomcat.apache.org/download-80.cgi  在下载页面 点击你要下载的版本 下载 core 下面的zip 2.在Finder中打开zip文件 解压即可 3.打开终端test安装是否成功 1 输入 cd /Users/huyifan/work/tool/tomcat/apache-tomcat-8.5.4 进入到tomcat目录下 2 再

Mac下Android studio 之NDK配置教程(二)

Mac下Android studio 之NDK配置教程(二) (一)简述 从上一篇NDK配置教程(一) 中,我 简单的阐述了MAC下NDK的基本解压和环境配置步骤. 本节我讲详细描述android studio 在MAC下的的配置运行步骤. (二)开始 首先,我们前往上次解压好的NDK文件路径,使用Android studio 导入Hello-jni 导入完成后,AS会自动帮我们构建为grade版本. 等待完成,版本构建完成. 打开文件目录如图所示 我们在local.properties文件下添

一、掌握Samba服务的配置原理;二、在linux下配置samba共享服务

一.掌握Samba服务的配置原理二.在linux下配置samba共享服务(匿名共享.身份验证.账户映射.访问控制)Samba介绍:Samba是运行在Linux与Unix之上的免费共享服务的软件,是典型服务器/客户端模式,它有两个进程,一个是smbd,主要是用来管理共享文件的进程,另一个是nmbd,用来实现主机名到IP地址的转换(相当于Windows下的NetBIOS的功能),smbd运行在TCP的139.445端口,nmbd则运行在UDP的137.138端口(运行samba服务后可以用如:net

Mac OS平台的Premiere Pro怎样配置首选项设置(二)?

Adobe Premiere Pro CC 2018 Mac版是Adobe为Mac OS平台推出的一款常用的视频编辑软件,Adobe Premiere Pro CC 2018 Mac版是一款编辑画面质量比较好的软件,有较好的兼容性,且可以与adobe公司推出的其他软件相互协作,小编今天就此款软件的"首选项配置"问题,为大家详细讲解一下. 采集首选项 控制Premiere Pro直接从磁带盒或摄像机传输视频和音频的方式.(任何其他项目设置选项都不影响采集.)此面板的内容取决于编辑模式.如

.NET Core采用的全新配置系统[3]: “Options模式”下的配置是如何绑定为Options对象

配置的原子结构就是单纯的键值对,并且键和值都是字符串,但是在真正的项目开发中我们一般不会单纯地以键值对的形式来使用配置.值得推荐的做法就是采用<.NET Core采用的全新配置系统[1]: 读取配置数据>最后演示的方式将相关的配置定义成一个Options类型,并采用与类型定义想匹配的结构来定义原始的配置,这样就能利用它们之间的映射关系将读取的配置数据绑定为Options对象,我们将这种编程模式称为“Options模式”. [ 本文已经同步到<ASP.NET Core框架揭秘>之中]