.Net Core庫類項(xiàng)目跨項(xiàng)目讀取配置文件的方法
在項(xiàng)目開始之前我們可以先去了解一下IConfiguration接口,.Net Core Web應(yīng)用程序類似于一個(gè)控制臺,當(dāng)程序運(yùn)行到Startup時(shí)會(huì)自動(dòng)注入IConfiguration,默認(rèn)讀取當(dāng)前.Net Core Web應(yīng)用程序中的appsettings.json文件。讀取當(dāng)前.Net Core Web應(yīng)用程序的配置文件可以自動(dòng)直接注入,但如果我們需要使另一個(gè)類庫項(xiàng)目讀取到指定.Net Core Web應(yīng)用程序中的配置文件,需要怎么做?憑借Asp.Net Core無處不在的“依賴注入”,我們可以在Startup執(zhí)行時(shí)將讀取的配置信息注入到類庫項(xiàng)目中,之后我們可以愉快的使用配置信息了
新建一個(gè).Net Core的類庫項(xiàng)目和.Net Core Web應(yīng)用程序,修改Web應(yīng)用程序中的appsettings.json文件加入數(shù)據(jù)庫連接字符串用于之后的試驗(yàn)。

{
"WebConfig": {
"OracleConnectionString": "User Id=fjh;Password=fjh_123;Data Source=(DESCRIPTION =(ADDRESS_LIST =(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521)))(CONNECT_DATA = (SERVICE_NAME = orcl)));Pooling = True;Max Pool Size = 800;Min Pool Size = 1;Connect Timeout=5;"
},
"Logging": {
"LogLevel": {
"Default": "Warning"
}
},
"AllowedHosts": "*"
}
.Net Core的類庫項(xiàng)目中新建一個(gè)靜態(tài)類:ConfigurationHelper.cs
使用IConfiguration接口需要添加依賴項(xiàng):Microsoft.Extensions.Configuration
using Microsoft.Extensions.Configuration;
namespace Read_Configuration_File
{
public class ConfigurationHelper
{
private static IConfiguration _config;
public static void Configure(IConfiguration config)
{
_config = config;
}
/// <summary>
/// 根據(jù)配置文件鍵讀取對應(yīng)的值
/// </summary>
/// <param name="Key"></param>
/// <returns></returns>
public static string GetConfigValueByKey(string Key)
{
var value = _config[Key];
return value;
}
}
}
創(chuàng)建一個(gè)靜態(tài)字段_config用來存儲(chǔ)配置信息,同時(shí)定義一個(gè)靜態(tài)方式通過配置文件的鍵值獲取對應(yīng)的值。
.Net Core的類庫項(xiàng)目中新建一個(gè)靜態(tài)類:Utilconfig.cs
創(chuàng)建一個(gè)只讀靜態(tài)字段OracleConnectionString存儲(chǔ)根據(jù)鍵值獲得的配置文件的值
namespace Read_Configuration_File
{
public static class UtilConfig
{
public static string OracleConnectionString => ConfigurationHelper.GetConfigValueByKey("WebConfig:OracleConnectionString") == null ? "" : string.Format(ConfigurationHelper.GetConfigValueByKey("WebConfig:OracleConnectionString"));
}
}
最關(guān)鍵的一步,修改.Net Core Web應(yīng)用程序中的Startup.cs
我們需要將配置信息注入到類庫項(xiàng)目,需要使用ConfiurationHelper類下的靜態(tài)方法。在創(chuàng)建的.Net Core Web應(yīng)用程序的Startup文件中調(diào)用Configure方法,使用前不要忘了先引用類庫項(xiàng)目


到這里為止,我們可以調(diào)用靜態(tài)類UtilConfig中的靜態(tài)只讀字段OracleConnectionString愉快的使用.Net Core Web應(yīng)用程序的配置信息。
接下來我們來驗(yàn)證一下項(xiàng)目是否成功
在.Net Core庫類項(xiàng)目中新建一個(gè)類:ConnectionRead
創(chuàng)建一個(gè)靜態(tài)方法GetConnectionStr()返回獲取到的配置文件信息
namespace Read_Configuration_File
{
public class ConnectionRead
{
/// <summary>
/// 定義一個(gè)靜態(tài)方法獲取連接字符串
/// </summary>
/// <returns></returns>
public static string GetConnectionStr()
{
var connStr = UtilConfig.OracleConnectionString;
return connStr;
}
}
}
項(xiàng)目結(jié)構(gòu)

在.Net Core Web項(xiàng)目中的HomeController主頁中調(diào)用這個(gè)靜態(tài)方法,如果能正確讀取到配置文件的值,那項(xiàng)目就成功了

修改一下主頁

執(zhí)行文件我們可以發(fā)現(xiàn)主頁上顯示了我們想要讀取的數(shù)據(jù)庫連接的配置信息。Nice!成功

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
asp.net使用Socket.Send發(fā)送信息及Socket.SendFile傳輸文件的方法
這篇文章主要介紹了asp.net使用Socket.Send發(fā)送信息及Socket.SendFile傳輸文件的方法,結(jié)合實(shí)例形式分析了asp.net基于socket實(shí)現(xiàn)信息與文件傳輸?shù)南嚓P(guān)技巧,需要的朋友可以參考下2016-06-06
詳解ASP.NET Core 處理 404 Not Found
這篇文章主要介紹了詳解ASP.NET Core 處理 404 Not Found,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-10-10
asp.net操作javascript:confirm返回值的兩種方式
asp.net操作javascript:confirm返回值分為兩種,不使用ajax、使用了ajax,不使用ajax,可以用StringBuilder來完成2014-09-09
使用正則Regex來移除網(wǎng)頁的EnableViewState實(shí)現(xiàn)思路及代碼
創(chuàng)建好網(wǎng)頁時(shí),什么都沒有寫,但運(yùn)行時(shí)會(huì)發(fā)現(xiàn)源程序(View Source),下面一段,此刻,也許你會(huì)想起,在網(wǎng)頁有一個(gè)屬性EnableViewState,在某些時(shí)候我們并不需要它,接下來將介紹如何移除它,感興趣的朋友可以了解下啊2013-01-01
ASP.NET Core中如何利用Csp標(biāo)頭對抗Xss攻擊
這篇文章主要給大家介紹了關(guān)于ASP.NET Core中如何利用Csp標(biāo)頭對抗Xss攻擊的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用ASP.NET Core具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧2019-09-09

