.Net Core庫類項目跨項目讀取配置文件的方法
在項目開始之前我們可以先去了解一下IConfiguration接口,.Net Core Web應(yīng)用程序類似于一個控制臺,當(dāng)程序運行到Startup時會自動注入IConfiguration,默認讀取當(dāng)前.Net Core Web應(yīng)用程序中的appsettings.json文件。讀取當(dāng)前.Net Core Web應(yīng)用程序的配置文件可以自動直接注入,但如果我們需要使另一個類庫項目讀取到指定.Net Core Web應(yīng)用程序中的配置文件,需要怎么做?憑借Asp.Net Core無處不在的“依賴注入”,我們可以在Startup執(zhí)行時將讀取的配置信息注入到類庫項目中,之后我們可以愉快的使用配置信息了
新建一個.Net Core的類庫項目和.Net Core Web應(yīng)用程序,修改Web應(yīng)用程序中的appsettings.json文件加入數(shù)據(jù)庫連接字符串用于之后的試驗。
{ "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的類庫項目中新建一個靜態(tài)類:ConfigurationHelper.cs
使用IConfiguration接口需要添加依賴項: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)建一個靜態(tài)字段_config用來存儲配置信息,同時定義一個靜態(tài)方式通過配置文件的鍵值獲取對應(yīng)的值。
.Net Core的類庫項目中新建一個靜態(tài)類:Utilconfig.cs
創(chuàng)建一個只讀靜態(tài)字段OracleConnectionString存儲根據(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
我們需要將配置信息注入到類庫項目,需要使用ConfiurationHelper類下的靜態(tài)方法。在創(chuàng)建的.Net Core Web應(yīng)用程序的Startup文件中調(diào)用Configure方法,使用前不要忘了先引用類庫項目
到這里為止,我們可以調(diào)用靜態(tài)類UtilConfig中的靜態(tài)只讀字段OracleConnectionString愉快的使用.Net Core Web應(yīng)用程序的配置信息。
接下來我們來驗證一下項目是否成功
在.Net Core庫類項目中新建一個類:ConnectionRead
創(chuàng)建一個靜態(tài)方法GetConnectionStr()返回獲取到的配置文件信息
namespace Read_Configuration_File { public class ConnectionRead { /// <summary> /// 定義一個靜態(tài)方法獲取連接字符串 /// </summary> /// <returns></returns> public static string GetConnectionStr() { var connStr = UtilConfig.OracleConnectionString; return connStr; } } }
項目結(jié)構(gòu)
在.Net Core Web項目中的HomeController主頁中調(diào)用這個靜態(tài)方法,如果能正確讀取到配置文件的值,那項目就成功了
修改一下主頁
執(zhí)行文件我們可以發(fā)現(xiàn)主頁上顯示了我們想要讀取的數(shù)據(jù)庫連接的配置信息。Nice!成功
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
.NET Core中使用Redis與Memcached的序列化問題詳析
這篇文章主要介紹了.NET Core中使用Redis與Memcached的序列化問題的相關(guān)內(nèi)容,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧。2018-03-03asp.net中Request.QueryString與Request.Param的區(qū)別分析
看起來Request.Params更好一些,但是還是不明白既然Param包括了所有,為什么還要有QueryString呢2011-10-10RadioButtonList綁定圖片及泛型Dictionary應(yīng)用
讀取站點某一目錄的圖片,需要掌握LINQ與泛型Dictionary<TKey,TValue>的使用,本文將介紹RadioButtonList綁定圖片的實現(xiàn),感興趣的朋友可以了解下,或許對你有所幫助2013-02-02ASP.NET WebForm中<%=%>與<%#%>的區(qū)別
這篇文章主要介紹了ASP.NET WebForm中<%=%>與<%#%>的區(qū)別,需要的朋友可以參考下2015-01-01asp.net gridview實現(xiàn)全選,反選與刪除記錄的操作代碼
asp.net gridview實現(xiàn)全選,反選與刪除記錄的操作代碼,需要的朋友可以參考下。2011-07-07asp.net實現(xiàn)生成縮略圖及給原始圖加水印的方法示例
這篇文章主要介紹了asp.net實現(xiàn)生成縮略圖及給原始圖加水印的方法,結(jié)合具體實例形式分析了asp.net圖片的縮略圖與水印操作相關(guān)實現(xiàn)技巧,需要的朋友可以參考下2017-10-10ASP.NET筆記之文章發(fā)布管理小系統(tǒng)案例
本篇文章小編為大家介紹,ASP.NET筆記之文章發(fā)布管理小系統(tǒng)案例。需要的朋友參考下2013-04-04