.Net5封装配置文件读取类

目的:1、直接获取配置参数,无需其他操作;2、获取参数的一部分返回一个实体

配置文件(appsettings.json)结构:

{
工 "a":1,
   "b":{
      "c":3 
   },
    "d":[4,5]
}

第一步:封装一个类(ToolConfig.cs)专门用于读取配置参数,且任意到处在项目中使用:

public class ToolConfig{
   public int a{set;get;}
   public int[] d{set;get;}
   public b  b{set;get;}
    //加载配置文件
   static void initConfig(){
                 var fileName = "appsettings.json";
            var directory = AppContext.BaseDirectory;
            directory = directory.Replace("\\", "/");
            var filePath = $"{directory}/{fileName}";
            if (!File.Exists(filePath))
            {
                var length = directory.IndexOf("/bin");
                filePath = $"{directory.Substring(0, length)}/{fileName}";
            }
          
            var config = new ConfigurationBuilder()
                        .SetBasePath(Environment.CurrentDirectory)
                     .Add(new JsonConfigurationSource
                     {
                         Path = "appsettings.json",
                         Optional = true,
                         ReloadOnChange = true
                     })
                     .Build();
            Configuration = config;
   }

        //获取参数一部分并转为实体
        public static b  GetB
        {
            get
            {
             return  Get<RedisParas>("a:b");
            }
        }



        //获取整型
        public static int GetInt(string key, string defaultValue = "")
        {
            return Convert.ToInt32(Configuration[key] ?? defaultValue);
        }

        //获取字符串
        public static  string GetStr(string key, string defaultValue = "")
        {
            return Configuration[key] ?? defaultValue;
        }

        //获取简单参数:整形、布尔、字符串
        public static T GetValue<T>(string key)
        {
            return Configuration.GetValue<T>(key);
        }

        //获取数组/复杂对象
        public static T Get<T>(string key) where T : class, new()
        {
            return  Configuration.GetSection(key).Get<T>();
        }


        //其他类型根据需要自己写吧
   
}

//对应参数中的复杂类型
public class b{
   public int c{get;set;}
}

第二步:Startup.cs中实例化配置文件类

public Startup(IConfiguration configuration)
{
     //初始配置文件
     ToolConfig tc = new ToolConfig();
}

演示使用:

//获取参数 a

ToolConfig.GetValue<int>("a")

ToolConfig.GetInt("a")

//获取参数 b

ToolConfig.GetB

//获取参数 d

ToolConfig.Configuration.GetSection("d").Get<int[]>();

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值