八、.net core(.NET 6)配置讀取appsettings檔案內容的通用功能

WeskyNet發表於2021-06-02

 新增通用讀取配置檔案功能

Wsk.Core.Package專案下,新增Microsoft.Extensions.Configuration包:

 

 

在啟動專案下,設定appsettings.json屬性為始終複製:

 

 

新建一個資料夾Common,用於存放工具類專案。並且新建專案:Wsk.Core.AppSettings,引用package包專案,然後新建一個讀取配置檔案的通用類,叫AppHelper。目錄結構如圖:

 

 

AppHelper類裡面,新建靜態操作方法有關程式碼,用於讀取根目錄下的配置檔案資訊:

 

 

程式碼:

八、.net core(.NET 6)配置讀取appsettings檔案內容的通用功能
  public class AppHelper
    {
        private static IConfiguration _config;

        public AppHelper(IConfiguration configuration)
        {
            _config = configuration;
        }

        /// <summary>
        /// 讀取指定節點的字串
        /// </summary>
        /// <param name="sessions"></param>
        /// <returns></returns>
        public static string ReadAppSettings(params string[] sessions)
        {
            try
            {
                if (sessions.Any())
                {
                    return _config[string.Join(":", sessions)];
                }
            }
            catch
            {
                return "";
            }
            return "";
        }

        /// <summary>
        /// 讀取實體資訊
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="session"></param>
        /// <returns></returns>
        public static List<T> ReadAppSettings<T>(params string[] session)
        {
            List<T> list = new List<T>();
            _config.Bind(string.Join(":", session), list);
            return list;
        }
    }
View Code

 

在啟動專案下,新建資料夾ConfigServices,用於存放各種服務的新增專案。

現在,看下目前的啟動項下的ConfigureServices方法:

 

 

我們把該方法做個簡化。在ConfigServices下新建一個靜態類,叫 WskService,用於寫入各種自帶的方法進行整合;再新建一個靜態類SwaggerService,用於存放Swagger功能的整合:

 

 

然後,把swagger的功能進行移植,在SwaggerService類下面進行註冊:

 

再把上面有一個新增控制器的功能進行註冊到WskService下面。然後,把對swagger的註冊也加入到該服務下:

 

 

最後,在ConfigureServices下面把所有內容刪掉,然後新增WskServices的註冊:

 

 

接下來,新增對剛剛我們寫的讀取配置檔案類的註冊。在ConfigureServices裡面進行新增註冊單例模式,放在註冊服務的最上面,這樣其他服務就可以在註冊時候也可以引用該功能進行讀取配置檔案了:

 

 

 

現在做個測試,在配置檔案裡面新建一段配置資訊:

 

 

json內容:

 "Test": {
    "A": "Hello",
    "B": {
      "C": "World"
    }
  }

 

在控制器方法裡面,做個列印測試:

 

 

示例程式碼: 

八、.net core(.NET 6)配置讀取appsettings檔案內容的通用功能
 [HttpPost]
        public IActionResult HelloWorld()
        {

           string a= AppHelper.ReadAppSettings("Test", "A");
            string b = AppHelper.ReadAppSettings("Test", "B", "C");
            return Ok($"{a} ***** {b}");
        }
View Code

 

啟動程式,並執行api,看看返回的結果:

 

 

返回成功,此篇完結。如果有用,歡迎評論、打賞、點贊或轉發。版權所有,轉發請註明出處:https://www.cnblogs.com/weskynet/p/14843324.html

 

相關文章