每天記錄一點:NetCore獲得配置文件 appsettings.json


用NetCore做項目如果用EF  ORM在網上有很多的配置連接字符串,讀取以及使用方法

由於很多朋友用的其他ORM如SqlSugar,NH,Dapper等,在讀取連接字符串的時候,往往把信息保存到一個配置文件中,例如appsetting.json,

網上有很多關於讀取appsetting.json都是通過注入的方式,  在ORM讀取配置的時候,都是在一個類庫里面,所以用注入的方式有時候不適合【個人理解】

 

因以上場景,下面這個方法讀取配置可以在任何地方使用

 

喜歡NetCore的朋友,歡迎加群QQ:86594082

源碼地址:https://github.com/feiyit/SoaProJect

 

1、在項目中,新建一個NetCore的類庫,創建類ConfigServices

namespace Core.Extensions
{
    /// <summary>
    /// 讀取配置文件
    /// </summary>
    public class ConfigServices
    {
        public static IConfiguration Configuration { get; set; }
        static ConfigServices()
        {
            //ReloadOnChange = true 當appsettings.json被修改時重新加載            
            Configuration = new ConfigurationBuilder()
            .Add(new JsonConfigurationSource { Path = "appsettings.json", ReloadOnChange = true })
            .Build();
        }
    }
}

2、在Web項目下面appsettings.json里面增加自定義的配置

{
  "DBConnection": {
    "MySqlConnectionString": "server=localhost;database=fyt_ims;uid=root;pwd=123456;charset='utf8';SslMode=None"
  },  
  "Logging": {
    "IncludeScopes": false,
    "LogLevel": {
      "Default": "Warning"
    }
  }
}

 

3、新建一個讀取配置的類

namespace FytErp.Core.Model.ConfigModel
{
    /// <summary>
    /// 數據庫連接字符串
    /// </summary>
    public class DBConnection
    {
        /// <summary>
        /// MySql數據庫連接字符串
        /// </summary>
        public string MySqlConnectionString { get; set; }

        /// <summary>
        /// SqlServer數據庫連接字符串
        /// </summary>
        public string SqlServerConnectionString { get; set; }
    }
}

 

4、編寫測試讀取配置

namespace FytErp.Web.Pages
{
    public class IndexModel : PageModel
    {
        public DbConnection DbSetting { get; private set; }
        public void OnGet()
        {
            //獲得配置文件中的DBConnection節點
            DbSetting = ConfigServices.Configuration.GetSection("DbConnection").Get<DbConnection>();
        }
    }
}

 

5、最終讀取結果

 


免責聲明!

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



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