zoukankan      html  css  js  c++  java
  • Asp.Net Core 轻松学系列-4玩转配置文件

    前言

        在 .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",
        "gender":"man",
        "job":"coder"
      }
    }
    
    • 定义实体类
    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 使程序运行于多个自定义端口
    微信公众号:DotNet程序园
    欢迎关注收取阅读最新文章
    • 您随手点赞是我不断书写的动力,如有错误,欢迎指正
    • 出处:http://www.cnblogs.com/viter/
    • 推荐一个快速开发脚手架,基于 .netcore+pgsql,GitHub地址: https://github.com/lianggx/mystaging
    • 本文版权归作者和博客园共有,欢迎个人转载,必须保留此段声明;商业转载请联系授权,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
    • 欢迎大家关注我的微信公众号,一起学习一起进步
     
  • 相关阅读:
    受得了多大的委屈,才做得了多大的事
    黑客常用 Linux 入侵常用命令
    8年软件测试工程师感悟——写给还在迷茫中的朋友
    买or不买?如何测试博彩公司赔率是否合理?
    函数三
    函数二
    函数
    字符编码与文件的操作
    三、元组,字典、集合
    3.20学习内容,字符串与列表
  • 原文地址:https://www.cnblogs.com/hmit/p/11363404.html
Copyright © 2011-2022 走看看