Aso.Net Core 的配置系统Configuration

Lueng 2019-11-30 原文

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

发表于
2019-11-30 20:25 
☆のLueng☆ 
阅读(
评论(

编辑

收藏

 

版权声明:本文为Lueng原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/Lueng/p/11963819.html

Aso.Net Core 的配置系统Configuration的更多相关文章

  1. .Net RabbitMQ实战指南——客户端开发

    开发中关键的Class和Interface有Channel、Connection、ConnectionFact […]...

  2. .Net core 2.0 利用Arrtibute获取MVC Action来生成菜单

    最近在学习.net core的同时将老师的MVC5项目中的模块搬过来用,其中有一块就是利用Arribute来生 […]...

  3. 小二助手(react应用框架)-概述

    小二助手(react应用框架)-概述 前段时间想学习一个前端框架,原因是这样的,我本身是做游戏的,但是自己对前 […]...

  4. AspNet Core Api Restful +Swagger 发布IIS 实现微服务之旅 (二)

    AspNet Core Api Restful +Swagger 发布IIS 实现微服务之旅 (二) 上一步我 […]...

  5. 【HMC Core 6.0全球上线】图形计算服务新插件,助力高画质3D手游创新

    HMS Core 6.0已于7月15日全球上线,本次新版本向广大开发者开放了众多全新能力与技术。其中华为图形计 […]...

  6. Powered by .NET Core 进展:用 docker-compose 验证高并发问题嫌疑犯 docker swarm

    相关博文: 【故障公告】发布 .NET Core 版博客站点引起大量 500 错误 【网站公告】.NET Co […]...

  7. 教你写个简单的 Redis Client 框架 – .NET Core

    目录 0,关于 Redis RESP 1,定义数据类型 2,定义异步消息状态机 3,定义命令发送模板 4,定义 […]...

  8. Asp.Net Core 学习教程2、使用ASP.NET Core中的RazorPages

    1、创建一个Asp.Net Core Web应用程序 1.1、打开VS2019 新建项目 1.2、选好项目位置 […]...

随机推荐

  1. CentOS6.5下搭建LAMP+FreeRadius+Daloradius Web管理和TP-LINK路由器、H3C交换机连接,实现,上网认证和记账功能

    什么是RADIUS服务: RADIUS:(Remote Authentication Dial In User […]...

  2. 《架构师最佳实践》生产环境JVM调优之空间担保失败引起的FullGC

    1  问题现象 应用prod-xxx-k8s,在内存足够的情况下,仍然会产生偶发FullGC的问题。 JVM配 […]...

  3. Java Stream函数式编程第三篇:管道流结果处理

    一、Java Stream管道数据处理操作 在本号之前写过的文章中,曾经给大家介绍过 Java Stream管 […]...

  4. 推荐一款免费的服务器及主机控制面板 – jobily

    最近由于teamviewer被封了,想找能代替远程桌面的工具,发现内网穿透这个工具,看到有ngrok,frp等 […]...

  5. 数据分析常用的Excel函数

    Excel是我们工作中经常使用的一种工具,对于数据分析来说,这也是处理数据最基础的工具。 本文对数据分析需要用 […]...

  6. PHP 语法字符串函数 strcmp、strlen 使用及实现

    说明 这里基于 php7.2.5 进行测试,php7 之后内部结构变化应该不是太大,但与 php5.X 有差别 […]...

  7. google protobuf的原理和思路提炼

    google protobuf的原理和思路提炼 2021-06-27 20:37  tera  阅读(0)  […]...

  8. redis基础

    简述redis Redis是一个Key-Value类型的NoSQL内存数据库,整个数据库统统加载在内存当中进行 […]...

展开目录

目录导航