首页 > 其他分享 >WebApi读取配置文件帮助类

WebApi读取配置文件帮助类

时间:2024-07-01 15:09:48浏览次数:23  
标签:WebApi return 读取 配置文件 static Configuration sections public string

 1     /// <summary>
 2     /// appsettings.json操作类
 3     /// </summary>
 4     public class AppSettings
 5     {
 6         static IConfiguration Configuration { get; set; }
 7         static string contentPath { get; set; }
 8 
 9         public AppSettings(string contentPath)
10         {
11             string Path = "appsettings.json";
12             Configuration = new ConfigurationBuilder()
13                 .SetBasePath(contentPath)
14                 .Add(new JsonConfigurationSource
15                 {
16                     Path = Path,
17                     Optional = false,
18                     ReloadOnChange = true
19                 }).Build();
20         }
21 
22         public AppSettings(IConfiguration configuration)
23         {
24             Configuration = configuration;
25         }
26         /// <summary>
27         /// 封装要操作的字符
28         /// </summary>
29         /// <param name="sections">节点配置</param>
30         /// <returns></returns>
31         public static string app(params string[] sections)
32         {
33             try
34             {
35 
36                 if (sections.Any())
37                 {
38                     return Configuration[string.Join(":", sections)];
39                 }
40             }
41             catch (Exception)
42             {
43 
44             }
45 
46             return "";
47         }
48 
49         /// <summary>
50         /// 递归获取配置信息数组
51         /// </summary>
52         /// <typeparam name="T"></typeparam>
53         /// <param name="sections"></param>
54         /// <returns></returns>
55         public static List<T> app<T>(params string[] sections)
56         {
57             List<T> list = new List<T>();
58             Configuration.Bind(string.Join(":", sections), list);
59             return list;
60         }
61     }

 

第二种

 1 public class AppSettings
 2 {
 3     static IConfiguration Configuration { get; set; }
 4 
 5     public AppSettings(IConfiguration configuration)
 6     {
 7         Configuration = configuration;
 8     }
 9 
10     /// <summary>
11     /// 封装要操作的字符
12     /// </summary>
13     /// <param name="sections">节点配置</param>
14     /// <returns></returns>
15     public static string App(params string[] sections)
16     {
17         try
18         {
19             if (sections.Any())
20             {
21                 return Configuration[string.Join(":", sections)];
22             }
23         }
24         catch (Exception ex)
25         {
26             Console.WriteLine(ex.Message);
27         }
28 
29         return "";
30     }
31 
32     /// <summary>
33     /// 递归获取配置信息数组
34     /// </summary>
35     /// <typeparam name="T"></typeparam>
36     /// <param name="sections"></param>
37     /// <returns></returns>
38     public static List<T> App<T>(params string[] sections)
39     {
40         List<T> list = new();
41         try
42         {
43             if (Configuration != null && sections.Any())
44             {
45                 Configuration.Bind(string.Join(":", sections), list);
46             }
47         }
48         catch
49         {
50             return list;
51         }
52         return list;
53     }
54     public static T Bind<T>(string key, T t)
55     {
56         Configuration.Bind(key, t);
57         return t;
58     }
59 
60 
61     public static T GetAppConfig<T>(string key, T defaultValue = default)
62     {
63         T setting = (T)Convert.ChangeType(Configuration[key], typeof(T));
64         var value = setting;
65         if (setting == null)
66             value = defaultValue;
67         return value;
68     }
69 
70     /// <summary>
71     /// 获取配置文件 
72     /// </summary>
73     /// <param name="key">eg: WeChat:Token</param>
74     /// <returns></returns>
75     public static string GetConfig(string key)
76     {
77         return Configuration[key];
78     }
79 
80     /// <summary>
81     /// 获取配置节点并转换成指定类型
82     /// </summary>
83     /// <typeparam name="T">节点类型</typeparam>
84     /// <param name="key">节点路径</param>
85     /// <returns>节点类型实例</returns>
86     public static T Get<T>(string key)
87     {
88         return Configuration.GetSection(key).Get<T>();
89     }
90 }

 

标签:WebApi,return,读取,配置文件,static,Configuration,sections,public,string
From: https://www.cnblogs.com/leon1128/p/18278100

相关文章

  • QT 读取Json 配置文件
    {QStringProjectPath="";QStringConfigPath=".json";constchar*PathEnvVar=getenv("");if(PathEnvVar!=nullptr){ProjectPath=PathEnvVar;ConfigPath=ProjectPath+"/.json&quo......
  • python 读取条形码以及二维码
    #在AI运用中经常需要读取物体的条码信息,这一步在很多的场景应用中变得非常重要#本文就来浅谈一下pyzbar的运用。一、安装pyzbar的库:pipinstallpyzbar-ihttps://pypi.tuna.tsinghua.edu.cn/simple二、pyzbar库的介绍:pyzbar库是一个基于Python的二维码生成和识别库,它提......
  • webAPI连接SQLserver,并快速建立数据模型
    首先,你需要有一个webAPI来作为Android应用和SQLserver数据库之间的中间件,创建该api在项目中导入三个NuGet包通过服务器资源管理器连接数据库,获取数据库连接的字符串 快速建立数据模型思路:通过数据库创建数据类:导入包=>打开程序包管理器控制台=>选择项目=>Scaffold-DbCont......
  • Linux和windows网络配置文件的修改
    Linux和windows网络配置文件的修改网络配置文件是计算机网络管理中至关重要的一部分。正确配置网络文件可以确保计算机与网络设备之间的通信顺畅,避免网络故障。本文将详细介绍网络配置文件的修改方法,包括常见命令、使用方法举例,以及一些优化建议。一、网络配置文件概述网......
  • SpringMVC配置文件的位置和命名
    配置web.xml文件时我们需要配置SpringMVC框架的配置文件,该文件有两种配置方式。第一种是默认配置,第二种是带配置参数的配置。1.1默认配置方式SpringMVC框架有它自己的配置文件,该配置文件的名字默认为:-servlet.xml,默认存放的位置是WEB-INF目录下。如果采用这种方式意味着文件的......
  • 【Redis —— 04 Redis配置文件】
    Redis配置文件(通常为redis.conf)包含多种配置选项,可以调整Redis服务器的行为和性能。以下是Redis配置文件中的常见配置项及其详解:官网:Redisconfiguration|Docs常用配置项1.基本配置bind绑定的IP地址。如果你想让Redis监听多个IP地址,可以用空格分隔多个IP。示例:b......
  • 如何读取 ALV 列表中保存的布局元数据?
    我有一个ALV列表作为程序的输出,并且需要能够动态获取/提取列及其位置。用户还可以将列/位置保存为布局以供将来使用,我希望获取已保存布局的相关信息。我希望以内部表格的形式获取ALV列表的列及其位置,以便进一步使用,例如,生成.xls文件。获取和保......
  • 程序A将五个学生的信息(姓名、性别、分数)存入文件Stu_data中 程序B从文件中读取并排序
     首先打开文件并存入信息;#include<stdio.h>#defineNUM5typedefstructstudent{ charname[100]; charsex; floatscore;}stu;intmain(){ FILE*fp=NULL; if((NULL==(fp=fopen("stu_data","w")))){ perror("fopen");retur......
  • EasyExcel 无法读取图片?用poi写了一个工具类
    在平时的开发中,经常要开发Excel的导入导出功能。一般使用poi或者EasyExcel开发,使用poi做excel比较复杂,大部分开发都会使用EasyExcel因为一行代码就能实现导入和导出的功能。但是EasyExcel不支持图片的读的操作,本文操作如何实现图片的读和写的功能。在EasyExcel......
  • SpringBoot集成redis配置文件不生效踩坑记录
    SpringBoot版本<parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>3.1.2</version></parent>导入spring-boot-stater-data-redis依赖<depen......