Asp.netCore3.0 WebApi從0到1手摸手教你寫【4】讀取appsettings.json配置類

為什么寫這個教程

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

在我們這個WebApi項目中我們將把配置文件統(tǒng)一放在appsettings.json文件中檬果,同時將寫一個讀取配置文件的公用類瓮孙,具體方法如下。

第一步在appsettings.json文件中增加一個存放配置信息的參數(shù)AppSettings

教程【2】中我們把讀取數(shù)據(jù)庫連接字符串放在了ConnectionStrings中的xxxDB里选脊,然后在xxxContext.cs中定義了一個ConStr靜態(tài)變量來從Startup.cs中獲取數(shù)據(jù)庫連接字符串杭抠。在此我們將會把xxxDB放在統(tǒng)一的配置標簽下。
在appsettings.json新增AppSettings恳啥,然后在里面增加xxxDB偏灿、IsSign、Md5Key等配置參數(shù)角寸。

{
  "Logging": {
    "LogLevel": {
      "Default": "Information",
      "Microsoft": "Warning",
      "Microsoft.Hosting.Lifetime": "Information"
    }
  },
  "AllowedHosts": "*",
  //接口配置參數(shù)設置
  "AppSettings": {
    //數(shù)據(jù)庫連接字符串
    "xxxDB": "Server=127.0.0.1;User Id=用戶id;Password=密碼;Database=數(shù)據(jù)庫名稱;",
    //接口是否需要簽名
    "IsSign": "true",
    //16位MD5簽名key
    "Md5Key": "5ShiCeShiAAAAAAA"
  }
}

第二步增加AppSettings.cs操作類

在之前教程中沒有用到Common類庫里添加一個AppSettings.cs類菩混,具體代碼如下:

using Microsoft.Extensions.Configuration;
using System;
using System.Collections.Generic;
using System.Text;

namespace XXX.Common
{
    public class AppSettings
    {
        private static IConfigurationSection appSection = null;
        /// <summary>
        /// 獲取配置文件
        /// </summary>
        /// <param name="key"></param>
        /// <returns></returns>
        public static string GetAppSeting(string key)
        {
            if (appSection.GetSection(key)!=null)
            {
                return appSection.GetSection(key).Value;
            }
            else
            {
                return "";
            }
        }
        /// <summary>
        /// 設置配置文件
        /// </summary>
        /// <param name="section"></param>
        public static void SetAppSetting(IConfigurationSection section)
        {
            appSection = section;
        }
    }
}

第三步修改Startup.cs

在Startup.cs中的Configure方法中獲取appsettings.json值忿墅,代碼如下:

//從appsettings.json獲取配置文件
            Common.AppSettings.SetAppSetting(Configuration.GetSection("AppSettings"));

第四步使用

通過Common.AppSettings.GetAppSeting("配置文件名")讀取配置文件
示例:
從配置文件中讀取連接字符串
打開XXXContext.cs在OnConfiguring方法中設置數(shù)據(jù)庫連接字符串扁藕。

protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
        {
            if (!optionsBuilder.IsConfigured)
            {
                //通過配置文件操作類讀取數(shù)據(jù)庫連接字符串
                optionsBuilder.UseSqlServer(Common.AppSettings.GetAppSeting("xxxDB"));
            }
        }

這篇教程屬于對之前3個教程的補充,后面會繼續(xù)優(yōu)化這個項目疚脐。

項目源碼地址

https://github.com/xiaxiaoqian/NetCore3.0-WebApi

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末亿柑,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子棍弄,更是在濱河造成了極大的恐慌望薄,老刑警劉巖疟游,帶你破解...
    沈念sama閱讀 212,884評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異痕支,居然都是意外死亡颁虐,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,755評論 3 385
  • 文/潘曉璐 我一進店門卧须,熙熙樓的掌柜王于貴愁眉苦臉地迎上來另绩,“玉大人,你說我怎么就攤上這事花嘶∷褡眩” “怎么了?”我有些...
    開封第一講書人閱讀 158,369評論 0 348
  • 文/不壞的土叔 我叫張陵椭员,是天一觀的道長车海。 經常有香客問我,道長隘击,這世上最難降的妖魔是什么侍芝? 我笑而不...
    開封第一講書人閱讀 56,799評論 1 285
  • 正文 為了忘掉前任,我火速辦了婚禮埋同,結果婚禮上竭贩,老公的妹妹穿的比我還像新娘。我一直安慰自己莺禁,他們只是感情好留量,可當我...
    茶點故事閱讀 65,910評論 6 386
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著哟冬,像睡著了一般楼熄。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上浩峡,一...
    開封第一講書人閱讀 50,096評論 1 291
  • 那天可岂,我揣著相機與錄音,去河邊找鬼翰灾。 笑死缕粹,一個胖子當著我的面吹牛,可吹牛的內容都是我干的纸淮。 我是一名探鬼主播平斩,決...
    沈念sama閱讀 39,159評論 3 411
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼咽块!你這毒婦竟也來了绘面?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 37,917評論 0 268
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎揭璃,沒想到半個月后晚凿,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經...
    沈念sama閱讀 44,360評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡瘦馍,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 36,673評論 2 327
  • 正文 我和宋清朗相戀三年歼秽,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片情组。...
    茶點故事閱讀 38,814評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡哲银,死狀恐怖,靈堂內的尸體忽然破棺而出呻惕,到底是詐尸還是另有隱情荆责,我是刑警寧澤,帶...
    沈念sama閱讀 34,509評論 4 334
  • 正文 年R本政府宣布亚脆,位于F島的核電站做院,受9級特大地震影響,放射性物質發(fā)生泄漏濒持。R本人自食惡果不足惜键耕,卻給世界環(huán)境...
    茶點故事閱讀 40,156評論 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望柑营。 院中可真熱鬧屈雄,春花似錦、人聲如沸官套。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,882評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽奶赔。三九已至惋嚎,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間站刑,已是汗流浹背另伍。 一陣腳步聲響...
    開封第一講書人閱讀 32,123評論 1 267
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留绞旅,地道東北人摆尝。 一個月前我還...
    沈念sama閱讀 46,641評論 2 362
  • 正文 我出身青樓,卻偏偏與公主長得像因悲,于是被迫代替她去往敵國和親堕汞。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 43,728評論 2 351

推薦閱讀更多精彩內容