博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
ASP.NET Core开发-读取配置文件Configuration
阅读量:7136 次
发布时间:2019-06-28

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

ASP.NET Core 是如何读取配置文件,今天我们来学习。

ASP.NET Core的配置系统已经和之前版本的ASP.NET有所不同了,之前是依赖于System.Configuration和XML配置文件web.config。

新的配置系统支持多种格式的配置文件。

下面我们来以json 格式的配置文件正式开始学习。

 

我们新建一个ASP.NET Core Web 应用程序,选择无身份验证。

 

读取配置文件

在项目目录下有个 appsettings.json ,我们先来操作这个文件。

在appsettings.json 添加如下两个节点。

{  "Data": "LineZero",  "ConnectionStrings": {    "DefaultConnection": "数据库1",    "DevConnection": "数据库2"  },  "Logging": {    "IncludeScopes": false,    "LogLevel": {      "Default": "Debug",      "System": "Information",      "Microsoft": "Information"    }  }}

下面我们来读取。由于项目默认已经将该文件加入ConfigurationBuilder 之中,所以我们可以直接来读取。

在 Configure 方法中读取:

public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory)        {            var data = Configuration["Data"];            //两种方式读取            var defaultcon = Configuration.GetConnectionString("DefaultConnection");            var devcon = Configuration["ConnectionStrings:DevConnection"];

调试程序,可以看到数据成功取出。

多环境区分

我们复制一个appsettings.json 然后重命名为 appsettings.Development.json

更改appsettings.Development.json 如下:

{  "Data": "LineZero Development",  "ConnectionStrings": {    "DefaultConnection": "开发数据库1",    "DevConnection": "开发数据库2"  },  "Logging": {    "IncludeScopes": false,    "LogLevel": {      "Default": "Debug",      "System": "Information",      "Microsoft": "Information"    }  }}

然后我们调试程序,你会发现获取到的值变成了Development.json 里的值。

这里就是多环境配置。

public Startup(IHostingEnvironment env)        {            var builder = new ConfigurationBuilder()                .SetBasePath(env.ContentRootPath)                .AddJsonFile("appsettings.json", optional: true, reloadOnChange: true)                .AddJsonFile($"appsettings.{env.EnvironmentName}.json", optional: true)//增加环境配置文件,新建项目默认有                .AddEnvironmentVariables();            Configuration = builder.Build();        }

如果我们直接执行读取到的就是appsettings.json 的值,因为直接执行时是 Production 环境。

下面是输出图:

调试时:

dotnet run 时:

对象读取

我们在appsettings.json 及 Development.json 都添加一个 SiteConfig 节点。

"SiteConfig": {    "Name": "LineZero's Blog",    "Info": "ASP.NET Core 开发及跨平台,配置文件读取"  },

然后新建一个SiteConfig 类。

public class SiteConfig    {        public string Name { get; set; }        public string Info { get; set; }    }

 

首先在 ConfigureServices 中添加Options 及对应配置。

public void ConfigureServices(IServiceCollection services)        {            // Add framework services.            services.AddMvc();            //添加options            services.AddOptions();            services.Configure
(Configuration.GetSection("SiteConfig")); }

 

然后我们在 Controller 中读取。

public class HomeController : Controller    {        public SiteConfig Config;        public HomeController(IOptions
option) { Config = option.Value; } public IActionResult Index() { return View(Config); } }

对应View Index.cshtml

@model SiteConfig@{    ViewData["Title"] = Model.Name;}

@Model.Name

@Model.Info

 

执行程序 http://localhost:5000/

 

如果你觉得本文对你有帮助,请点击“推荐”,谢谢。

 

ASP.NET Core实践交流群: 
133144964
.NET Core 跨平台交流群: 
550897034
博客示例代码GitHub:

转载地址:http://llcrl.baihongyu.com/

你可能感兴趣的文章
GoLand 2019.1 发布 RC 候选版
查看>>
C# /VB.NET操作Word批注(一)—— 插入、修改、删除Word批注
查看>>
ASP.NET-FineUI开发实践-16(二)
查看>>
TypeScript基础入门 - 函数 - this(二)
查看>>
如何解决公司网站首页被恶意跳转的安全问题
查看>>
kali下扫描CMS web漏洞小工具web-sorrow
查看>>
请问一下cpanel的邮箱能用么?
查看>>
手把手教你安装Navicat——靠谱的Navicat安装教程
查看>>
企业该用什么思维去做小程序,才能获取最大的运营价值?
查看>>
NI:力争成为半导体测试领域的领导者
查看>>
玩转Kubernetes TCP Ingress
查看>>
用ZooKeeper做为注册中心搭建基于Spring Cloud实现服务注册与发现
查看>>
靠疯狂收购就把AR布局好的Snap,能给我们带来什么启示?
查看>>
豪华VIP阵容空降FBS2017 激起食品饮料信息化新浪潮
查看>>
thrift概述
查看>>
SQLAlchemy 1.2.19 和 1.3.3 发布,Python ORM 框架
查看>>
Django 2.2 LTS 发布,长期支持版来了
查看>>
算法:QQ等级换算成皇冠太阳星星月亮
查看>>
浅析:智能家居缘何不温不火?
查看>>
CUDA 10.1 发布,NVIDIA 推出的并行计算架构
查看>>