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; }
        }
    
    
    
  • 相关阅读:
    简单的C语言编译器--语法分析器
    简单的C语言编译器--词法分析器
    简单的C语言编译器--概述
    最短路径算法
    拓扑排序和关键路径
    图的连通性
    最小生成树
    图的搜索
    gcc O2优化选项对内嵌汇编以及函数递归调用的影响
    gcc 在c代码中内嵌汇编调用c函数: 只是证明曾经我来过
  • 原文地址:https://www.cnblogs.com/Lueng/p/11963819.html
Copyright © 2011-2022 走看看