zoukankan      html  css  js  c++  java
  • asp.net core 如何在Controller获取配置文件的值

    场景:我们会把一些配置信息,写在配置文件文件中,便于我们修改和配置。在之前的asp.net 中可以通过ConfigurationManger来获取web.config里面的配置。在.net core 如何操作配置信息。

    我们借助“Options Pattern” 的思想来解决在配置文件的获取。

    我有一个配置文件appsetting.json内容如下:

    {
      "ConnectionStrings": {
        "MySql": "Server=localhost;database=blog;uid=root;pwd=Password12!;"
      },
      "FileServers": [
        {
          "Host": "127.0.0.1",
          "Port": "5001"
        },
        {
          "Host": "127.0.0.1",
          "Port": "5002"
        }
      ],
      "Logging": {
        "IncludeScopes": false,
        "LogLevel": {
          "Default": "Debug",
          "System": "Information",
          "Microsoft": "Information"
        }
      }
    }

    现在要获取FileServers节点下面的信息,显然是一个数组或者集合,总之是多个值。

    我们在项目的启动时候火读取appsetting.json文件的内容,此时,可以将我们需要的内容通过IOptions注入到容器中,当我们需要用到这些配置信息的时候再去容器里面获取:

    直接上代码 在Startup里面中:

       // This method gets called by the runtime. Use this method to add services to the container.
            // For more information on how to configure your application, visit http://go.microsoft.com/fwlink/?LinkID=398940
            public void ConfigureServices(IServiceCollection services)
            {
                services.AddMvc();
                // services.AddOptions().Configure<FormatOptions>(Configuration.GetSection("Format"));
                ///using    "Microsoft.Extensions.Options.ConfigurationExtensions": "1.1.0"
                services.AddOptions().Configure<List<FileServerModel>>(Configuration.GetSection("FileServers"));
            }

    在HomeController 里面 修改构造函数 获取IOptions里面的值:

      public List<FileServerModel> FileServers { set; get; }
    
            public HomeController(IOptions<List<FileServerModel>> options)
            {
                FileServers = options.Value;
            }

    这样appsetting.json里面的值就可以获取到了。

  • 相关阅读:
    【板子】博弈论
    【洛谷】P1229快速幂
    【洛谷】P1349广义斐波那契
    2018.11.15 Nginx服务器的使用
    2018.11.14 hibernate中的查询优化---关联级别查询
    2018.11.13 Hibernate 中数据库查询中的Criteria查询实例
    2018.11.12 Spring事务的实现和原理
    2018.11.11 Java的 三大框架:Struts+Hibernate+Spring
    2018.11.10 Mac设置Eclipse的 .m2文件夹是否可见操作&&Mac系统显示当前文件夹的路径设置
    2018.11.9 Dubbo入门学习
  • 原文地址:https://www.cnblogs.com/nele/p/6254463.html
Copyright © 2011-2022 走看看