首页 > 其他分享 >(六).NET6.0通用读取配置文件功能

(六).NET6.0通用读取配置文件功能

时间:2024-12-27 11:21:50浏览次数:4  
标签:return string 配置文件 public instance AppHelper NET6.0 读取

1.新增Microsoft.Extensions.Configuration包

在启动项目下,设置appsettings.json属性为始终复制

2.新建一个文件夹Common,用于存放工具类项目。并且新建项目:Ysq.Core.AppSettings,引用package包项目,然后新建一个读取配置文件的通用类,叫AppHelper。目录结构如图

3.AppHelper代码如下:

点击查看代码
using Microsoft.Extensions.Configuration;

namespace Ysq.Core.AppSettings
{
    public class AppHelper
    {
        private IConfiguration _config;

        // 静态单例实例
        private static AppHelper _instance;

        // 私有构造函数,防止外部直接实例化
        private AppHelper(IConfiguration configuration)
        {
            _config = configuration;
        }

        /// <summary>
        /// 初始化 AppHelper 单例实例
        /// </summary>
        /// <param name="configuration"></param>
        public static void Init(IConfiguration configuration)
        {
            if (_instance == null)
            {
                _instance = new AppHelper(configuration);
            }
        }

        /// <summary>
        /// 获取 AppHelper 单例实例
        /// </summary>
        public static AppHelper Instance
        {
            get
            {
                if (_instance == null)
                {
                    throw new InvalidOperationException("AppHelper 未初始化,请先调用 Init 方法进行初始化");
                }
                return _instance;
            }
        }

        /// <summary>
        /// 读取指定节点的字符串
        /// </summary>
        /// <param name="sessions"></param>
        /// <returns></returns>
        public string ReadAppSettings(params string[] sessions)
        {
            try
            {
                if (sessions.Any())
                {
                    return _config[string.Join(":", sessions)];
                }
            }
            catch
            {
                return "";
            }
            return "";
        }

        /// <summary>
        /// 读取实体信息
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="session"></param>
        /// <returns></returns>
        public List<T> ReadAppSettings<T>(params string[] session)
        {
            List<T> list = new List<T>();
            _config.Bind(string.Join(":", session), list);
            return list;
        }
    }
}

4.在Program中初始化AppHelper单例

5.新增一段配置文件添加测试方法

6.输出

标签:return,string,配置文件,public,instance,AppHelper,NET6.0,读取
From: https://www.cnblogs.com/sq1201/p/18635183

相关文章

  • (五).NET6.0使用Serilog进行配置和实现日志记录
    1.首先安装Serilog六件套神装包也可以对个别相应的包进行删除等,例如:1是读取配置文件的,如果不需要通过配置文件进行操作,就可以不使用这个包。2是打印到控制台的,如果不需要打印到控制台,也可以不引用。3是写入到文件的,如果不需要写入到文件,也是可以不提供的。我在此处全部引入,方便......
  • 某家政小程序系统 httpRequest 任意文件读取
    0x01产品描述:        ‌家政上门预约服务小程序‌是一种基于移动互联网的家政服务平台,旨在为用户提供便捷、高效、安全的家政服务。用户可以通过手机随时随地预约家政服务,满足家庭日常清洁、照料、维修等需求‌。0x02漏洞描述:        家政小程序系统httpR......
  • c# 使用.yaml 配置文件
    废话不多说,上教程。......
  • Java学习,读取文件内容
    Java中读取文件内容,是一个常见的任务,可以使用java.nio.file包中的Files类和Paths 类,或者使用java.io包中的BufferedReader和FileReader类来实现。使用Files和Paths,读取文件内容:importjava.io.IOException;importjava.nio.file.Files;importjava.nio.file.Paths;import......
  • [Java/压缩] Java读取Parquet文件
    序:契机生产环境有设备出重大事故,又因一关键功能无法使用,亟需将生产环境的原始MQTT报文(以parquet文件格式+zstd压缩格式落盘)DOWN到本地,读取并解析。本文聚焦在本地电脑,用java读取parquet文件相当多网络文档的读取代码无法正常运行,有必要记录一二,后续还需进一步......
  • Goby 漏洞发布|CVE-2024-9047 WordPress File Upload 插件 wfu_file_downloader.php 任
    漏洞名称:CVE-2024-9047WordPressFileUpload插件wfu_file_downloader.php任意文件读取漏洞EnglishName:CVE-2024-9047WordPressFileUploadPluginwfu_file_downloader.phpArbitraryFileReadVulnerabilitCVSScore:6.8漏洞描述:WordPressFileUpload插件是一款Wo......
  • EasyExcel-读取多个sheet的方法
    管方文档https://easyexcel.opensource.alibaba.com/docs/current/读取多个sheet的方法参考:https://www.cnblogs.com/huangjinyong/p/15994442.html主要代码下面的is:是你导入的excel文件ByteArrayInputStreamis=newByteArrayInputStream(newbyte[1024]);EasyE......
  • WordPress File Upload插件 任意文件读取漏洞复现(CVE-2024-9047)(附脚本)
    0x01产品描述:        FileUpload插件是一款功能强大的WordPress站点文件上传插件,它允许用户在WordPress站点中的文章、页面、侧边栏或表单中轻松上传文件到wp-contents目录中的任何位置。该插件使用最新的HTML5技术,确保在现代浏览器和移动设备上都能流畅运行,同时也......
  • 【Linux系列】Linux 系统配置文件详解:`/etc/profile`、`~/.bashrc` 和 `~/.bash_profi
     ......
  • 0day 移动应用getPicServlet存在任意文件的读取漏洞
     0x01产品概述    0day移动应用getPicServlet存在任意文件的读取漏洞通用描述管理和发布于一体的智能化平台,广泛应用于新闻、媒体和各类内容创作机构。该平台支持多终端、多渠道的内容分发,具备素材管理、编辑加工、智能审核等功能,通过AI技术辅助内容创作与数据分析......