首页 > 移动平台 > 详细

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

时间:2019-11-28 14:30:53      阅读:129      评论:0      收藏:0      [点我收藏+]

背景说明:

      在.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

 

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

原文:https://www.cnblogs.com/yhnet/p/11949195.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!