Asp.Net Core 輕鬆學-玩轉配置文件

前言

    在 .NET Core 項目中,配置文件有着舉足輕重的地位;與.NetFramework 不一樣的是,.NET Core 的配置文件都以 .json 結尾,這表示一個標準的 json 格式的文件;一個標準的 Asp.Net Core MVC 項目,必定帶着一個 appsettings.json 文件,該文件即是項目默認配置文件,這和基於 .NetFramework 建立的 Asp.Net Web Application (默認配置名稱:App.config) 有着根本的不一樣,今天咱們就學習如何添加自定義配置到文件中,並把該配置在程序中讀取出來;而後再經過使用 host.json 這個配置文件使程序運行於多個端口。json

1. appsettings.json 文件

1.1 appsettings.json 文件是一個標準的 json 結構的文件,這表示你只要按照 json 的結構寫入該文件,不管什麼內容,都能在程序中自動讀取,當咱們建立好 MVC 項目後,系統就自動幫咱們建立好 appsettings.json 文件,其默認內容以下:app

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

1.2 下面咱們加一個配置節點 "book":"博客園精華文章選集"學習

{
  "Logging": {
    "LogLevel": {
      "Default": "Warning"
    }
  },
  "AllowedHosts": "*",
  "book":"博客園精華文章選集"
}

1.3 在控制器 Controllers/HomeController.cs 中將該節點內容設置爲網頁標題輸出,記得引用命名空間ui

using Microsoft.Extensions.Configuration;

在 Index 方法中加入參數 IConfiguration,以下url

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

1.4 輸入命令 dotnet run 啓動項目,結果以下,讀取自定義配置成功code

1.5 將配置文件節點轉換爲實體類server

  • 咱們經常有這樣的需求,在配置文件中作了一堆配置,可是又不想逐個讀取,太麻煩,若是能轉換爲實體類就行了,其實 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 使程序運行於多個自定義端口
相關文章
相關標籤/搜索