asp.net core IConfiguration 读取配置文件示例

using Microsoft.Extensions.Configuration;
using System;
using System.Collections.Generic;

namespace ConsoleApp5
{
    /// <summary>
    /// asp.net core IConfiguration Demo
    /// </summary>
    class Program
    {
        static void Main(string[] args)
        {
            ReadJson();
            ReadTypeJson();
            ReadXml();
            ReadEvn();
            ReadMemory();
            Console.Read();
        }
        /// <summary>
        /// 读取JSON文件 引入Microsoft.Extensions.Configuration.Json
        /// </summary>
        static void ReadJson()
        {
            IConfiguration configuration = new ConfigurationBuilder().SetBasePath(Environment.CurrentDirectory).AddJsonFile("jsconfig.json").Build();
            string str = configuration["loginDB:server"];
            Console.WriteLine(str);
        }


        /// <summary>
        /// 强类型读取JSON文件  引入Microsoft.Extensions.Configuration.Binder
        /// </summary>
        static void ReadTypeJson()
        {
            IConfiguration configuration = new ConfigurationBuilder().SetBasePath(Environment.CurrentDirectory).AddJsonFile("jsconfig.json").Build();
            Rootobject rootobject = configuration.Get<Rootobject>();
            Console.WriteLine(rootobject.loginName);
        }


        /// <summary>
        /// 读取XML 引入Microsoft.Extensions.Configuration.Xml
        /// </summary>
        static void ReadXml()
        {
            IConfiguration configuration = new ConfigurationBuilder().SetBasePath(Environment.CurrentDirectory).AddXmlFile(path: "config.xml").Build();
            string str = configuration["book:bookName"];
            Console.WriteLine(str);
        }

        /// <summary>
        /// 读取系统环境变量 引入Microsoft.Extensions.Configuration.EnvironmentVariables
        /// </summary>
        static void ReadEvn()
        {
            IConfiguration configuration = new ConfigurationBuilder().SetBasePath(Environment.CurrentDirectory).AddEnvironmentVariables().Build();

            IEnumerable<KeyValuePair<string, string>> list = configuration.AsEnumerable();

            //遍历
            foreach (var item in list)
            {
                var key = item.Key;
                var value = item.Value;
                Console.WriteLine($"{key}:{value}");
            }
            Console.WriteLine();
            string str = configuration["classpath"];
            Console.WriteLine(str);
        }

        /// <summary>
        /// 读取内存 
        /// </summary>
        static void ReadMemory()
        {
            var data = new List<KeyValuePair<string, string>>();
            data.Add(new KeyValuePair<string, string>("loginname", "sysadmin"));
            IConfiguration configuration = new ConfigurationBuilder().SetBasePath(Environment.CurrentDirectory).AddInMemoryCollection(data).Build();
            string str = configuration["loginname"];
            Console.WriteLine(str);
        }


        public class Rootobject
        {
            public string loginName { get; set; }
            public Logindb loginDB { get; set; }
        }

        public class Logindb
        {
            public string server { get; set; }
            public string s { get; set; }
        }

    }
}

config.xml

<?xml version="1.0" encoding="utf-8" ?>
<books>
  <book>
    <bookName>C++入门</bookName>
    <bookPrice>20.00</bookPrice>
  </book>
</books>

jsconfig.json

{
  "loginName": "sysAdmin",
  "loginDB": {
    "server": "192.168.0.1",
    "s": "sa"
  }
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值