首页 > 技术文章 > .Net Core如何在任意位置获取配置文件的内容

Tassdar 2018-10-19 16:06 原文

前几天群里有人问,我想在程序里的任意位置读取appsetting.json里的配置,该怎么搞。

话不多说上源码

首先,要想读取配置文件我们要用到IConfiguration 接口,这个接口在Startup类的最上面在程序启动的时候就会注入。

我们定义一个静态类,在静态类中声明一个IConfiguration类型的静态字段。

  public class ConfigHelper
    {
        //private static IConfiguration configs;
        public static IConfiguration Configs;
        public static TVal GetValue<TVal>(string key)
        {
            var res = Utility.Parse<TVal>(Configs[key]);
return (TVal)Convert.ChangeType(res.ToString(),typeof(TVal));
} }

写好这个类之后,我们要在startup类中把我们的IConfiguration字段进行赋值。

这样,我们就可以在程序中的任意位置获取到appsetting中的配置了

例子:这样就可以获取到配置文件中LockTIme的值

 var res=   ConfigHelper.GetValue<int>("LockTime");

三、HttpContext中获取服务

群里的旁友提醒我没写这个,特意补上

在Web项目中,例如控制器中使用HttpContext也可以获取到已注入的服务

HttpContext.RequestServices.GetService

  

 

推荐阅读