Asp.Net Core轻松学习系列之配置文件

所属分类: 网络编程 / ASP.NET 阅读数: 994
收藏 0 赞 0 分享

前言

在 .NET Core 项目中,配置文件有着举足轻重的地位;与.NetFramework 不同的是,.NET Core 的配置文件都以 .json 结尾,这表示一个标准的 json 格式的文件;一个标准的 Asp.Net Core MVC 项目,一定带着一个 appsettings.json 文件,该文件便是项目默认配置文件,这和基于 .NetFramework 创建的 Asp.Net Web Application (默认配置名称:App.config) 有着根本的不同,今天我们就学习如何添加自定义配置到文件中,并把该配置在程序中读取出来;然后再通过使用 host.json 这个配置文件使程序运行于多个端口。

下面话不多说了,来一起看看详细的介绍吧

1. appsettings.json 文件

1.1 appsettings.json 文件是一个标准的 json 结构的文件,这表示你只要按照 json 的结构写入该文件,无论什么内容,都能在程序中自动读取,当我们创建好 MVC 项目后,系统就自动帮我们创建好 appsettings.json 文件,其默认内容如下:

{
 "Logging": {
 "LogLevel": {
 "Default": "Warning"
 }
 },
 "AllowedHosts": "*"
}

1.2 下面我们加一个配置节点 "book":"博客园精华文章选集"

{
 "Logging": {
 "LogLevel": {
 "Default": "Warning"
 }
 },
 "AllowedHosts": "*",
 "book":"博客园精华文章选集"
}

1.3 在控制器 Controllers/HomeController.cs 中将该节点内容设置为网页标题输出,记得引用命名空间

using Microsoft.Extensions.Configuration;

在 Index 方法中加入参数 IConfiguration,如下

 public IActionResult Index([FromServices]IConfiguration cfg)
 {
  
  return View();
 }

1.4 输入命令 dotnet run 启动项目,结果如下,读取自定义配置成功

 

1.5 将配置文件节点转换为实体类

我们常常有这样的需求,在配置文件中做了一堆配置,但是又不想逐个读取,太麻烦,如果能转换为实体类就好了,其实 IConfiguration 就自带了该天赋,看下面的配置

{
 "Logging": {
 "LogLevel": {
 "Default": "Warning"
 }
 },
 "AllowedHosts": "*",
 "book":"博客园精华文章选集",
 "customer":{
 "name":"ron.liang",

定义实体类

public class Customer{
  public string Name { get; set; } 
  public string Gender{get;set;}
  public string Job{get;set;}
 }

转换为实体类,可以看到,已经转换成功,对象属性都已获得了值


另类方式使用 hosting.json 使程序运行于多个端口

2.1 定义 hosting.json 文件

在实际的开发中,程序运行必需定义清晰的端口,不能使用随机模式,这个时候,我们可以利用 hosting.json 文件来定义,无论程序发布到何处,永远以该文件定义的端口来运行,首先在项目根目录下创建一个 hosting.json 文件,并填入以下内容。

{
 "server.urls": "http://0.0.0.0:12006;http://0.0.0.0:12007"
}

2.2 修改 Program.cs 方法

 public static IWebHostBuilder CreateWebHostBuilder(string[] args)
 {
  var hostConfiguration = new ConfigurationBuilder().AddJsonFile("hosting.json").Build();

  return WebHost.CreateDefaultBuilder(args)
   .UseStartup<Startup>()
   .UseConfiguration(hostConfiguration);
 }

以上方法将刚才创建的 hosting.json 加入配置中,并指定程序启动使用该配置文件

2.2 删除 Properties 目录下的 launchSettings.json 文件

2.3 运行项目,可以看到,现在项目侦听端口 12006/12007


结语

通过本文,我们学习到了以下内容

1. 知道了appsettings.json 的作用,以及如何从配置文件中读取项目配置节点

2. 如何通过 IConfiguration 把配置节点转换为实体对象

3. 使用 hosting.json 使程序运行于多个自定义端口

努力为开源社区作贡献,推荐一个自己开发的基于 .netcore+pgsql 的快速开发脚手架,内置 ORM框架,github地址:https://github.com/lianggx/mystaging

文中如有疏漏之处,欢迎指正。

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对脚本之家的支持。

更多精彩内容其他人还在看

解析WPF实现音频文件循环顺序播放的解决方法

本篇文章是对WPF实现音频文件循环顺序播放的方法进行了详细的分析介绍,需要的朋友参考下
收藏 0 赞 0 分享

解决.net framework 4.0环境下遇到版本不同编译不通过的方法详解

本篇文章是对.net framework 4.0环境下遇到版本不同编译不通过的解决方法进行了详细的分析介绍,需要的朋友参考下
收藏 0 赞 0 分享

将文件上传、下载(以二进制流保存到数据库)实现代码

将文件以二进制流的格式写入数据库:首先获得文件路径,然后将文件以二进制读出保存在一个二进制数组中具体请祥看本文,希望对你有所帮助
收藏 0 赞 0 分享

点击提交按钮后DropDownList的值变为默认值实现分析

在点击提交按钮后,页面上所有的绑定到数据库的控件值都恢复到默认值,下面与大家分享下DropDownList的值变为默认值
收藏 0 赞 0 分享

ASP.NET web.config中数据库连接字符串connectionStrings节的配置方法

ASP.NET web.config中数据库连接字符串connectionStrings节的配置方法,需要的朋友可以参考一下
收藏 0 赞 0 分享

Linkbutton控件在项目中的简单应用

Button控件可分为button控件、LinkButton控件、ImageButton控件三类,而LinkButton控件则在页面上显示为一个超级链接,下面与大家分享下其具体应用
收藏 0 赞 0 分享

Web.config 和 App.config 的区别分析

Web.config 和 App.config 的区别分析,需要的朋友可以参考一下
收藏 0 赞 0 分享

基于.Net中的数字与日期格式化规则助记词的使用详解

本篇文章是对.Net中的数字与日期格式化规则助记词的使用进行了详细的分析介绍,需要的朋友参考下
收藏 0 赞 0 分享

解决在Web.config或App.config中添加自定义配置的方法详解

本篇文章是对在Web.config或App.config中添加自定义配置的方法进行了详细的分析介绍,需要的朋友参考下
收藏 0 赞 0 分享

深入本机影像生成器(Ngen.exe)工具使用方法详解

本篇文章是对本机影像生成器(Ngen.exe)工具使用方法进行了详细的分析介绍,需要的朋友参考下
收藏 0 赞 0 分享
查看更多