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; } }

     补充:IConfiguration.Get<T>()即可获得实体,所以我们无需从根获取起,如获取SQL的连接串,也可以这样写:

    1、configuration.GetSection("DataBase").Get<DataBase>().SqlServer.ConnectionString;

    2、configuration.GetSection("DataBase").GetSection("SqlServer").Get<SqlServer>().ConnectionString;

    等等。

     
    针对经常要使用的情形,建议将其纳入IOC
    services.Configure<DataBase>(Configuration.GetSection("DataBase"));

    这会将其设置为一个单例注入到容器中。

     
     
  • 相关阅读:
    How to Create a site at the specified URL and new database (CommandLine Operation)
    Using Wppackager to Package and Deploy Web Parts for Microsoft SharePoint Products and Technologies
    SQL Server Monitor v0.5 [Free tool]
    How to build Web Part
    Deploy web part in a virtual server by developing a Web Part Package file(.cab)
    How to recreate "sites" link if you delete it accidentally
    SharePoint Portal Server管理匿名访问设置
    Monitor sql connection from .Net SqlClient Data Provider
    Brief installation instruction of Sharepoint Portal Server
    How to Use SharePoint Alternate URL Access
  • 原文地址:https://www.cnblogs.com/ceci/p/11974748.html
Copyright © 2011-2022 走看看