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; }
        }
    
    
    
  • 相关阅读:
    git拉取代码命令
    zookeeper(version3.6.3)安装使用《一》
    kafka(version2.1.3)安装<一>
    linux安装jdk
    linux安装支持文件上传下载的命令
    mapstruct 再也不用set不同的属性而劳累了
    RabbitMq确认消费,与重复消费避免使用冥等
    java8之非重入锁StampedLock ,并发的另一种处理方式
    微信Jssdk
    Vue-Router 的params和query传参两种方式
  • 原文地址:https://www.cnblogs.com/Lueng/p/11963819.html
Copyright © 2011-2022 走看看