zoukankan      html  css  js  c++  java
  • Intern Day9

    配置文件介绍

    • 配置文件是appsettings.json。在 ASP.NET 中,我们一般使用 Web.config 来进行配置。但是在 ASP.NET Core 中 ,你们会发现 Web.config 已经没了,因为它被 appsettings.json 这个配置文件取代了。

    • 我们的主机在创建完成以后,我们的服务容器里就已经默认注册了一些服务,其中有一个服务就是配置服务,这个服务是可以注册到startup类中的构造函数里面。

    • 配置文件里,配置项的名称不区分大小写。比如ConnectionString、WebName这些

    如何在appsettings.json中读取这些配置:(在Startup.cs中去写)

      public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
            {
                // 比如:我想读取配置文件中的连接字符串ConnectionString
                
                // 最简单的办法:
                app.Run(async context =>
                {
                    var connStr = _configuration["ConnectionString"];
                    
                    //如果想找一级的下一级,中间用 大分类:小分类 连接
                });
            }
    

    绑定到配置模型对象

    问题原因:使用字符串键名获取配置值很不优雅(比如说我们想去获得一个bool值,但是读取出来的却是string类型),也容易出错。

    解决办法:我们可以把配置项绑定到对象。

    解决步骤:

    1. 首先,创建配置项结构对应的配置模型(想要读取哪个配置项就去配置对应的属性)。比如在appsetting.json中有如下内容,我们就需要去创建一个appsetting.cs
    1. 在appsetting.cs写上:
    1. 或者采用全部/部分绑定的方式(绑定全部/部分appsetting)(在这个方法里绑定,只能绑定一次用一次)
    // 全部绑定
    public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
    {
    		var appSetting = new AppSetting();
    		_configuration.Bind(appSetting);//这时候appSetting就自动绑定了
    }   
    
    // 部分绑定
    public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
    {
    		var webSetting = new WebSetting();
    		_configuration.GetSection("WebSetting").Bind(webSetting);//这时候appSetting就自动绑定了
    }   
    

    但是在上面的代码中,我们只能绑定一次用一次,那怎么解决绑定一次可以永久使用呢?

    在Startup.cs的Startup方法中,把已经有配置参数的配置(配置选项),当做服务注册进来,哪里想用依赖注入就行了。在Startup.cs的Startup方法中添加如下代码:

    1. 用非泛型添加:
    1. 用泛型语句添加:

      services.Configure<AppSetting>(_configuration);
      

    注册进来之后如何使用?(注册配置选项)

    1. 比如说我们想在Startup类下的Configure方法中使用,我们直接在env后面添加(即利用泛型注入的方式):

      public void Configure(IApplicationBuilder app, IWebHostEnvironment env,IOptions<AppSetting> appOptions)
      
    2. 如何调用:看图片上最后一行代码:

    1. 注意:凡是可以支持注入的地方,都可以用这种方式获取配置项

    自定义配置文件

    参考下面的参考博客

    参考

    参考视频:https://www.bilibili.com/video/BV1y7411A7TJ?p=1

    参考博客:https://blog.csdn.net/weixin_31437175/article/details/112705263?ops_request_misc=%7B%22request%5Fid%22%3A%22161430230516780261985866%22%2C%22scm%22%3A%2220140713.130102334.pc%5Fall.%22%7D&request_id=161430230516780261985866&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~first_rank_v2~rank_v29-3-112705263.pc_search_result_hbase_insert&utm_term=+app.Run(async+context+%3D>

  • 相关阅读:
    SQL优化
    Mybatis
    Spring MVC(总结二)
    ES多机集群配置
    ES索引,分片,一致性
    ElasticSearch关于索引库的命令操作
    试题01(一)
    Linux安装配置elastic search
    Windows安装配置elastic search
    SpringBoot(二)
  • 原文地址:https://www.cnblogs.com/OFSHK/p/14450868.html
Copyright © 2011-2022 走看看