.net core中 讀取appsetting.json中配置值


背景說明:

      在.net core中appsetting文件中配置了很多基礎項:比如session過期時間、短信配置參數等,以便在部署時快速更換基礎參數值

appsetting.json文件示例

{
  "Logging": {
    "LogLevel": {
      "Default": "Warning"
    }
  },
  "ConnectionStrings": {
    "Database": "Server=127.0.0.1;Database=db_dep;user=sa;password=#;"
  },
  "Setting": {
    "session_timeout": "1800"
  },
  "AllowedHosts": "*"
}
View Code

 

新建一個和配置項同名的類:Setting

public class Setting
    {
        /// <summary>
        /// session過期時間(秒)
        /// </summary>
        public string session_timeout { get; set; }
    }
View Code

 

在Stratup類的ConfigureServices方法中添加依賴注入

services.Configure<Setting>(Configuration.GetSection("Setting"));

 

這樣就可以了,在Controller使用時可以定義:

private readonly IOptions<Setting> _setting;
public LoginController(IOptions<Setting> setting)
{
_setting = setting;
}
View Code

 

如果是在視圖中使用@inject 關鍵字

@inject IOptions<AppSettings> AppSettings

<title>@AppSettings.Options.SiteTitle</title>
View Code

 

 

那如果是需要在startup類中啟用session時,直接給session添加過期時間,需要讀配置項,該如何獲取呢(詳見紅色字體)?

//增加session過期時間配置項加載
services.AddSession(o =>
{
o.IdleTimeout = TimeSpan.FromSeconds(double.Parse(Configuration.GetSection("Setting").GetValue<string>("session_timeout").ToString()));
});

 

參考說明:https://www.cnblogs.com/TomXu/p/4496440.html

 

當然如果要在類中創建數據自己的json配置類,也是可以的,詳情參考:

 https://www.cnblogs.com/CreateMyself/p/6859076.html

 


免責聲明!

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



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