首页 > 其他分享 >封装访问配置文件类

封装访问配置文件类

时间:2025-01-10 13:57:51浏览次数:1  
标签:封装 string 配置文件 AppSettings paras 访问 static Configuration public

需要用到的包:

Microsoft.Extensions.Configuration.Json:负责加载 JSON 配置文件,解析其中的内容。

Microsoft.Extensions.Configuration.Binder:负责将解析的配置数据绑定到实体

public class AppSettings
{
    public static IConfiguration Configuration { get; set; }

    public AppSettings(IConfiguration configuration)
    {
        Configuration = configuration;
    }

    public AppSettings(string basePath)
    {
        string path = "appsettings.json";
        Configuration = new ConfigurationBuilder()
            .SetBasePath(basePath)
            .Add(new JsonConfigurationSource
            {
                Path = path,
                Optional = false,
                ReloadOnChange = true
            })
            .Build();
    }

    public static string AppString(params string[] paras)
    {
        if (paras.Length != 0)
        {
            return Configuration[string.Join(":", paras)];
        }
        return string.Empty;
    }

    public static T AppEntity<T>(params string[] paras)
    {
        return Configuration.GetSection(string.Join(":", paras)).Get<T>();
    }

    public static List<T> AppEntitys<T>(params string[] paras)
    {
        return Configuration.GetSection(string.Join(":", paras)).Get<List<T>>();
    }

    public static List<KeyValuePair<string, string>> AppKeys(params string[] paras)
    {
        return Configuration.GetSection(string.Join(":", paras))
            .GetChildren().Select(x => new KeyValuePair<string, string>(x.Key, x.Value)).ToList();
    }
}

注入:program.cs里面

            builder.Services.AddSingleton(new AppSettings(builder.Configuration));

使用:

AppSettings.AppString("AppConfig:ApiName");

 

标签:封装,string,配置文件,AppSettings,paras,访问,static,Configuration,public
From: https://www.cnblogs.com/zhang-3/p/18663840

相关文章

  • 【PyQt】pyqt进行封装程序为exe文件
    @[toc]pyqt进行封装程序为exe文件pyqt进行封装程序为exe文件将PyQt程序打包为可执行文件(.exe)可以使用PyInstaller工具。PyInstaller是一个流行的Python打包工具,能够将Python脚本及其依赖项打包为独立的可执行文件。以下是详细步骤:1.安装PyInstaller首先,确保你......
  • 使用Rocky Linux 快速部署虚拟化环境,浏览器访问,开源免费
    正常安装一个最小化的RockyLinux,然后执行下面的命令#设置阿里云的yum源sed-e's|^mirrorlist=|#mirrorlist=|g'\-e's|^#baseurl=http://dl.rockylinux.org/$contentdir|baseurl=https://mirrors.aliyun.com/rockylinux|g'\-i.bak\/etc/yum.repos.d/Rock......
  • Spring配置文件中:密码明文改为密文处理方式(通用方法)
    目录一、背景   二、思路A)普通方式B) 适合bootstrap.properties方式三、示例A)普通方式(连接Redis集群)A)普通方式(连接RocketMQ)B)适合bootstrap.properties方式四、总结一、背景    SpringBoot和SpringCloud中涉及多个配置文件,配置文件中对于密码......
  • ptp4l协议_配置文件
     ptp4l-iens33-f/etc/ptp4l.conf-m-S-2#服务端ptp4l-iens33-f/etc/ptp4l.conf-m-S-s-2 --step_threshold0.00002#客户端phc2sys-sCLOCK_REALTIME-w-m#设置时间摘自:https://blog.csdn.net/weixin_49041703/article/details/14......
  • 升级后手机版网站无法访问,可能的原因及解决方案
    !在进行服务器或应用程序升级后,如果发现手机版网站无法访问,这通常是由于升级过程中某些配置发生了变化,导致移动端设备无法正确解析或加载网页内容。为了帮助您更好地理解和解决这个问题,以下是几个可能的原因及相应的解决方案:检查域名解析设置升级后,域名解析设置可能会发生变化,尤......
  • tuack 配置文件转 uoj 配置文件
    #!/bin/envpython3fromtuackimportbasefromosimportsystembase.init()name="printer"deflndata(src,dst):system(f"ln-snf{src}.in{dst}.in")system(f"ln-snf{src}.ans{dst}.out")system(f"cpstatement......
  • modint 封装
    structmodint{ intx; staticintMod; constexprstaticvoidsetmod(int_){Mod=_;} intqpow(intb,intp){ if(!p)return1; intd=qpow(b,p>>1); if(p&1)return1ll*d*d%Mod*b%Mod; elsereturn1ll*d*d%Mod; } modint(into=0){x=o;} modin......
  • Java内存访问重排序的研究1
    什么是重排序请先看这样一段代码1:publicclassPossibleReordering{staticintx=0,y=0;staticinta=0,b=0;publicstaticvoidmain(String[]args)throwsInterruptedException{Threadone=newThread(newRunnable(){publicvoidrun......
  • Java内存访问重排序的研究6
    什么是重排序请先看这样一段代码1:publicclassPossibleReordering{staticintx=0,y=0;staticinta=0,b=0;publicstaticvoidmain(String[]args)throwsInterruptedException{Threadone=newThread(newRunnable(){publicvoidrun......
  • YOLO-v3如何从配置文件中构建网络骨架
    从配置文件路径读取模型配置参数config文件形式从路径中读取返回一个列表,列表中每个网络层以字典的形式存储参数defparse_model_config(path):"""Parsestheyolo-v3layerconfigurationfileandreturnsmoduledefinitions"""file=open(path,'r')#......