.Net Core3.0 WebApi 三:讀取appsettings.json


.Net Core3.0 WebApi 目錄

appsettings.json

我們在寫項目時往往會把一些經常變動的,可能會變動的參數寫到配置文件、數據庫中等可以存儲數據且方便配置的地方,這樣會方便我們在項目上線以后做相對應的配置工作。

.Core WebApi項目中我們將把配置文件統一放在appsettings.json文件中,我們將將寫一個讀取配置文件的公用類。

新建公共類庫

新建類庫Webapi.Core.Infrastructure,(基礎設施)用來存放一些公用的方法

 

使用Nuget安裝Microsoft.Extensions.Configuration和Microsoft.Extensions.Configuration.Json,Microsoft.Extensions.Configuration.Binder, 編輯ConfigHelper.cs,代碼如下:

 

namespace WebApi.Core.Infrastructure.Helpers
{
    public class ConfigHelper
    {
        private static readonly IConfiguration _configuration;

        static ConfigHelper()
        {
            //在當前目錄或者根目錄中尋找appsettings.json文件
            var fileName = "appsettings.json";

            var directory = AppContext.BaseDirectory;
            directory = directory.Replace("\\", "/");

            var filePath = $"{directory}/{fileName}";
            if (!File.Exists(filePath))
            {
                var length = directory.IndexOf("/bin");
                filePath = $"{directory.Substring(0, length)}/{fileName}";
            }

            var builder = new ConfigurationBuilder()
                .AddJsonFile(filePath, false, true);

            _configuration = builder.Build();
        }

        /// <summary>
        /// 獲取Section的值
        /// </summary>
        /// <param name="key"></param>
        /// <returns></returns>
        public static string GetSectionValue(string key)
        {
            return _configuration.GetSection(key).Value;
        }

        /// <summary>
        /// 獲取ConnectionStrings下的值
        /// </summary>
        /// <param name="key"></param>
        /// <returns></returns>
        public static string GetConnectionString(string key)
        {
            return _configuration.GetConnectionString(key);
        }
    }
}

 

讀取appsettings.json

編輯appsetting.json,添加一個紅色部分

 

{
  "Logging": {
    "LogLevel": {
      "Default": "Information",
      "Microsoft": "Warning",
      "Microsoft.Hosting.Lifetime": "Information"
    }
  },
  "AllowedHosts": "*",
  "ConnectionStrings": { "ConnectionString": "Data Source=127.0.0.1;Initial Catalog=db;User ID=uid;Password=123456;Pooling=True;Max Pool Size=512;Connect Timeout=500;" }
}

 

var connStr = ConfigHelper.GetConnectionString("ConnectionString");
            Console.WriteLine(connStr);

 

 

 這樣就讀取到了。還有另外一個方法,感興趣的,可以自行去嘗試,看看是怎么用的。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM