.net core 配置
.net core 配置包括很多种 例如内存变量、命令行参数、环境变量以及物理文件配置和自定义配置
物理文件配置主要有三种,它们分别是JSON、XML和INI,对应的配置源类型分别是JsonConfigurationSource、XmlConfigurationSource和IniConfigurationSource 这里主要讲JSON的配置
读取配置文件
{
"AllowedHosts": "*",
"Logging": {
"IncludeScopes": false,
"LogLevel": {
"Default": "Warning"
}
}
"Arry": [ { "Name": "zhangsan" }, { "Name": "lisi" }, { "Name": "wangwu" } ]
}
1.使用Key读取
Configuration["AllowedHosts"]; // 结果 *
Configuration["Logging:IncludeScopes"]; // 结果 false
Configuration["Logging:LogLevel:Default"]; // 结果 Warning
Configuration["Arry:0:Name"]; // 结果 zhangsan
小结:读取嵌套的配置,使用冒号隔开;读取数组形式的配置,使用数组的下标索引,0表示第一个。
2.使用GetValue<T>
Configuration.GetValue<string>("AllowedHosts"); // 结果 *
Configuration.GetValue<bool>("Logging:IncludeScopes"); // 结果 false
小结:GetValue方法的泛型形式还有一个GetValue("key",defaultValue)重载。如果key的配置不存在,则为指定的默认值。
3.使用Options
配置文件
{
"Name": "zhangsan",
"Age": 22,
"Company",{
"Id":1,
"Address":"中国 北京"
}
}
public class User
{
public string Name { get; set; }
public int Age { get; set; }
public class Company
{
public int Id {get;set;}
public string Address{get;set;}
}
}
注入:
services.Configure<User>(Configuration);
services.Configure<Company>(Configuration.GetSection("Company"));
services.Configure<Company>(Configuration.GetSection("User:Company"));
读取:
构造函数读取
private readonly User _user;
public GetConfig(IOptions<User> _options)
{ _user = _option.Value; }
ServiceProvider读取 serviceProvider.GetService<IOptions<User>>().Vlaue4.使用Bindvar user = new User(); Configuration.Bind(user);
var company=new Company();Configuration.GetSection("Conpany").Bind(company);
4.使用Get<T>
var user = Configuration.Get<User>();或者var commpany = Configuration.GetSection("Company").Get<Company>();
.net core 配置的更多相关文章
- ASP.NET Core配置Kestrel 网址Urls
ASP.NET Core中如何配置Kestrel Urls呢,大家可能都知道使用UseUrls() 方法来配置. 今天给介绍全面的ASP.NET Core 配置 Urls,使用多种方式配置Urls.让 ...
- 10分钟就能学会的.NET Core配置
.NET Core为我们提供了一套用于配置的API,它为程序提供了运行时从文件.命令行参数.环境变量等读取配置的方法.配置都是键值对的形式,并且支持嵌套,.NET Core还内建了从配置反序列化为PO ...
- 实现自己的.NET Core配置Provider之EF
<10分钟就能学会.NET Core配置>里详细介绍了.NET Core配置的用法,另外我还开源了自定义的配置Provider:EF配置Provider和Yaml配置Provider.本文 ...
- 实现自己的.NET Core配置Provider之Yaml
YAML是一种更适合人阅读的文件格式,很多大型的项目像Ruby on Rails都选择YAML作为配置文件的格式.如果项目的配置很少,用JSON或YAML没有多大差别.看看rails项目中的配置文件, ...
- 【转】10分钟就能学会的.NET Core配置
.NET Core为我们提供了一套用于配置的API,它为程序提供了运行时从文件.命令行参数.环境变量等读取配置的方法.配置都是键值对的形式,并且支持嵌套,.NET Core还内建了从配置反序列化为PO ...
- net core体系-web应用程序-4net core2.0大白话带你入门-4asp.net core配置项目访问地址
asp.net core配置访问地址 .net core web程序,默认使用kestrel作为web服务器. 配置Kestrel Urls有四种方式,我这里只介绍一种.其它方式可自行百度. 在Pr ...
- .NET Core 配置GC工作模式与内存的影响
.NET Core 配置GC工作模式与内存的影响 .NET Core GC 原文:https://blog.markvincze.com/troubleshooting-high-memory-usa ...
- Net Core -- 配置Kestrel端口
Net Core -- 配置Kestrel端口 Kestrel介绍 在Asp.Net Core中,我们的web application 其实是运行在Kestrel服务上,它是一个基于libuv开源的跨 ...
- ASP.NET Core 配置 EF 框架服务 - ASP.NET Core 基础教程 - 简单教程,简单编程
原文:ASP.NET Core 配置 EF 框架服务 - ASP.NET Core 基础教程 - 简单教程,简单编程 ASP.NET Core 配置 EF 框架服务 上一章节中我们了解了 Entity ...
随机推荐
- SpringBoot集成RabbitMQ消息队列搭建与ACK消息确认入门
1.RabbitMQ介绍 RabbitMQ是实现AMQP(高级消息队列协议)的消息中间件的一种,最初起源于金融系统,用于在分布式系统中存储转发消息,在易用性.扩展性.高可用性等方面表现不俗.Rabbi ...
- 搭建hbase1.2.5完全分布式集群
简介 有一段时间,没写博客了,因为公司开发分布式调用链追踪系统,用到hbase,在这里记录一下搭建过程 1.集群如下: ip 主机名 角色 192.168.6.130 node1.jacky.com ...
- JavaWeb过滤器.监听器.拦截器-原理&区别(转)
1.拦截器是基于java的反射机制的,而过滤器是基于函数回调 2.过滤器依赖与servlet容器,而拦截器不依赖与servlet容器 3.拦截器只能对action请求起作用,而过滤器则可以对几乎所有的 ...
- 关于C#中遍历字符串中的每个字符的方法
解决方案 C#提供了两个方法用于遍历字符串. 1.第一个方法是foreach循环,这个方法快速且容易,但是与第二个方法相比它不太灵活.其使用方法如下: string testStr = "a ...
- Spring中@Resource与@Autowired、@Qualifier的用法与区别
1.@Autowired与@Resource都可以用来装配bean. 都可以写在字段上,或写在setter方法上. 2.@Autowired默认按类型装配(这个注解是属业spring的),默认情况下必 ...
- 使用python脚本实现iOS图片资源压缩
最近公司有一个新的需求,要把代码进行瘦身,这篇博客记录下如何对图片进行压缩的. 原理: 写一个脚本,把图片文件夹'.xcassets'的所有文件遍历出来,然后使用一个第三方的算法把图片压缩后再替换回去 ...
- centos7 nginx Failed to read PID from file /run/nginx.pid: Invalid argument 解决方法
笔者在centos7上,配置nginx代理服务后, systemctl status nginx.service 提示错误 Failed to read PID from file /run/ngin ...
- The processing instruction target matching "[xX][mM][lL]" is not allowed.
现象: ERROR : The processing instruction target matching "[xX][mM][lL]" is not allowed. 异 ...
- python列表的切片操作允许索引超出范围
其余的不说,列表切片操作允许索引超出范围:
- mysql使用druid监控配置
近一年公司对druid使用频率越来越高了,感觉有必要了解下druid的监控配置,参考文档:https://blog.csdn.net/netdevgirl/article/details/526098 ...