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; }
        }
    
    
    
  • 相关阅读:
    转 windows查看端口占用命令
    servlet 让浏览器输出中文,并成功打印出来.2种方法
    ctrl+shift+i eclipse快捷键,debug时显示全黑屏
    转 一台电脑安装多个tomcat
    如何从windows中拷贝文件到linux (ubuntu)??
    Eclipse Java注释模板设置简介,更改字体大小
    sikuli 如何 清空文本框中的内容??解决方法!
    servlet 中通过response下载文件
    servlet乱码 解决方法 2种方法
    关于JAVA路径 问题
  • 原文地址:https://www.cnblogs.com/Lueng/p/11963819.html
Copyright © 2011-2022 走看看