zoukankan      html  css  js  c++  java
  • .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

  • 相关阅读:
    转:孙振耀谈人生(推荐)
    自绘按钮的实现
    数据结构知识
    Direct Show采集图像实例
    视觉跟踪
    改变对话框控件的颜色
    笔试题
    CBitmapButton的使用
    Rotor (SSCLI) 2.0 登场!
    Under the hood: 从Win32 SEH到CLI异常处理模型
  • 原文地址:https://www.cnblogs.com/yhnet/p/11949195.html
Copyright © 2011-2022 走看看