zoukankan      html  css  js  c++  java
  • Aso.Net Core 的配置系统Configuration

    Aso.Net Core 的配置系统Configuration

    ​ 1.以前的配置文件格式为XML

    ​ 2.新版的配置文件格式支持 { json ,xml, ini, memory, command, env..... }

    01.Json文件的弱类型方式读取

    1. Json文件 【Microsoft.Extensions.Configuration.Json】

    2. 添加配置文件json文件,并设置内容

      {
        "DataBase": {
          "SqlServer": {
            "ConnectionString": "server=.;database=testdb;uid=sa;pwd=123;"
          },
          "MySql": {
            "IpAddress": "127.0.0.1",
            "port": 3306
          }
        },
        "endArray": [
          { "endId": 20 },
          { "endId": "30" }
        ]
      }
      
    3. 获取数据

      private static void Main(string[] args)
      {
          IConfiguration configuration = new ConfigurationBuilder()
              .SetBasePath(Environment.CurrentDirectory)
              .AddJsonFile("AppSettings.json",true,true)
              .AddInMemoryCollection()
              .Build();
          var str1 = configuration["DataBase:SqlServer:ConnectionString"];
          var str2 = configuration["endArray:0:endId"];
          Console.WriteLine($"{str1}+---{str2}");
      }
      

    02.Json文件的强类型获取方式

    1.添加引用【Microsoft.Extensions.Configuration.Binder】

    2.GetValue方式获取

    private static void Main(string[] args)
    {
        IConfiguration configuration = new ConfigurationBuilder()
            .SetBasePath(Environment.CurrentDirectory)
            .AddJsonFile("AppSettings.json",true,true)
            .AddInMemoryCollection()
            .Build();
    
        //GetValue获取方式
        int val = configuration.GetValue<int>("endArray:0:endId");
        Console.WriteLine(val); 
    }
    

    3.实体映射方式

    private static void Main(string[] args)
    {
        IConfiguration configuration = new ConfigurationBuilder()
            .SetBasePath(Environment.CurrentDirectory)
            .AddJsonFile("AppSettings.json",true,true)
            .AddInMemoryCollection()
            .Build();
     
        //Bind 获取方式
        Root root=new Root();
        configuration.Bind(root);
        var ip = root.DataBase.MySql.IpAddress;
        var entid = root.endArray[0].endId;
        Console.WriteLine($"{ip}{entid}");
    	//Get<T> 获取
    	var root = configuration.Get<Root>();
    	var ip = root.DataBase.MySql.IpAddress;
    	var entid = root.endArray[0].endId;
    	Console.WriteLine($"{ip}{entid}");
     
    }
    //这里是实体类  
     public class SqlServer
        {
            /// <summary>
            /// 
            /// </summary>
            public string ConnectionString { get; set; }
        }
    
        public class MySql
        {
            /// <summary>
            /// 
            /// </summary>
            public string IpAddress { get; set; }
            /// <summary>
            /// 
            /// </summary>
            public int port { get; set; }
        }
    
        public class DataBase
        {
            /// <summary>
            /// 
            /// </summary>
            public SqlServer SqlServer { get; set; }
            /// <summary>
            /// 
            /// </summary>
            public MySql MySql { get; set; }
        }
    
        public class EndArray
        {
            /// <summary>
            /// 
            /// </summary>
            public int endId { get; set; }
        }
    
        public class Root
        {
            /// <summary>
            /// 
            /// </summary>
            public DataBase DataBase { get; set; }
            /// <summary>
            /// 
            /// </summary>
            public List<EndArray> endArray { get; set; }
        }
    
    
    
  • 相关阅读:
    web安全——代理(nginx)
    2016年3-7月书单推荐
    web安全——系统(Linux)
    web安全——防火墙
    web安全——简介
    系统安全扫描工具(appscan)的扫描类型小记
    知识管理,让生活更美好
    亚马逊如何变成 SOA(面向服务的架构)
    徐小平:关了公司以后,我有这些话要对你说
    网易味央第二座猪场落户江西 面积超过3300亩
  • 原文地址:https://www.cnblogs.com/Lueng/p/11963819.html
Copyright © 2011-2022 走看看