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; }
        }
    
    
    
  • 相关阅读:
    Delphi XE5 android 蓝牙通讯传输
    Delphi XE5 android toast
    Delphi XE5 android openurl(转)
    Delphi XE5 如何设计并使用FireMonkeyStyle(转)
    Delphi XE5 android 捕获几个事件
    Delphi XE5 android listview
    Delphi XE5 android 黑屏的临时解决办法
    Delphi XE5 android popumenu
    Delphi XE5 android 获取网络状态
    Delphi XE5 android 获取电池电量
  • 原文地址:https://www.cnblogs.com/Lueng/p/11963819.html
Copyright © 2011-2022 走看看