zoukankan      html  css  js  c++  java
  • asp.net core mvc 读取配置文件appsettings.json

    上一篇我们将了读取自定义配置文件。这篇我们讲一下asp.net core mvc里读取自带的配置文件 appsettings.json

    首先创建个asp.net core mvc项目,项目里有Program.cs文件, 代码 WebHost.CreateDefaultBuilder(args)  这句话里加默认加载了appsettings.json,所以就不需要再次指定json文件了。

    其次,打开Startup.cs文件,在方法ConfigureServices里添加一句代码:

     //将MyClass注册进Configuration
                services.Configure<MyClass>(Configuration);

    MyClass类与appsettings.json里的字段是一一对应的即可。

    接下来我们就可以使用了。

    (1)创建个控制器,在构造函数里注入

    using Microsoft.Extensions.Options;
       /// <summary>
            /// 构造函数,这里用IOptionsSnapshot可以支持热更新,如果使用IOptions则不支持热更新
            /// </summary>
            /// <param name="_myclass"></param>
            public HomeController(IOptionsSnapshot<MyClass> _myclass)
            {
                myclass = _myclass.Value;
            }

    (2)需要使用的地方就可以直接拿myclass使用了。

      public IActionResult Index()
            { 
                return View(myclass);
            }

    (3)也可以在Views里直接使用,直接省去(1)(2)步骤。

    @using Microsoft.Extensions.Options;
    @inject IOptionsSnapshot<MyClass> myClass;
    
    @{
        ViewData["Title"] = "Home Page";
    }
    
    <div class="text-center">
        <h1>班级名称:@myClass.Value.className</h1>
        <h1>班级秒速:@myClass.Value.classDesc</h1>
    
        <div>
            @foreach(var s in myClass.Value.students)
        {
                <div>
                    学生姓名:@s.name
                </div>
                <div>
                    学生年龄:@s.age
                </div>
    
        }
    
        </div>
    
    
    </div>

    还有种最简单,最灵活的方法:

    1、应用的依赖关系注入 (DI) 容器中提供了 IConfiguration。 IConfiguration 可注入到 Razor Pages PageModel 以获取以下类的配置:

    using Microsoft.Extensions.Configuration;

    public class IndexModel : PageModel
    {
        private readonly IConfiguration _config;
    
        public IndexModel(IConfiguration config)
        {
            _config = config;
        }
    
        // The _config local variable is used to obtain configuration 
        // throughout the class.
    }

     2、在需要使用的地方:

     
               var sectCofiguration=  _configuration.GetSection("RedisConfig:RedisSentinelsUrl");
               string sectValu=  sectCofiguration.Value;
    
         

     3、强类型转换:

    //配置文件JwtSettings有子节点;对应类JwtSettings的属性
      IConfigurationSection configSection = configuration.GetSection("JwtSettings");
    //JwtSettings 是一个类
      JwtSettings config = configSection.Get<JwtSettings>();
  • 相关阅读:
    阿里云ECS网站备案流程
    python学习之os.walk()
    python学习之pypandoc
    linux下的which
    python学习之range()和xrange()
    Python内置函数之repr()
    python学习之字典
    SQL基础之聚合与排序
    SQL基础教程
    lombok的安装
  • 原文地址:https://www.cnblogs.com/puzi0315/p/11312520.html
Copyright © 2011-2022 走看看