為什么寫這個教程
我們在寫一些項目時往往會把一些經常變動的主卫,可能會變動的參數(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)化這個項目疚脐。