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

  • 相关阅读:
    关于如何学习C语言
    2020软件工程作业04
    2020软件工程作业03
    2020软件工程作业02
    2020软件工程作业01
    3.语法树,短语,直接短语,句柄
    2.文法和语言
    Linux——如何将Red Hat Enterprise Linux 6的语言改为中文?
    编译原理概述
    编译原理概述-第一次作业
  • 原文地址:https://www.cnblogs.com/yhnet/p/11949195.html
Copyright © 2020-2023  润新知