.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