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


 添加通用讀取配置文件功能

Wsk.Core.Package項目下,新增Microsoft.Extensions.Configuration包:

 

 

在啟動項目下,設置appsettings.json屬性為始終復制:

 

 

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

 

 

AppHelper類里面,新建靜態操作方法有關代碼,用於讀取根目錄下的配置文件信息:

 

 

代碼:

  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"
    }
  }

 

在控制器方法里面,做個打印測試:

 

 

示例代碼: 

 [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

 


免責聲明!

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



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