123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778 |
- using Microsoft.Extensions.Configuration;
- using System;
- using System.Collections.Generic;
- using System.Linq;
- namespace Infrastructure
- {
- public class AppSettings
- {
- static IConfiguration Configuration { get; set; }
- public AppSettings(IConfiguration configuration)
- {
- Configuration = configuration;
- }
- /// <summary>
- /// 封装要操作的字符
- /// </summary>
- /// <param name="sections">节点配置</param>
- /// <returns></returns>
- public static string App(params string[] sections)
- {
- try
- {
- if (sections.Any())
- {
- return Configuration[string.Join(":", sections)];
- }
- }
- catch (Exception ex)
- {
- Console.WriteLine(ex.Message);
- }
- return "";
- }
- /// <summary>
- /// 递归获取配置信息数组
- /// </summary>
- /// <typeparam name="T"></typeparam>
- /// <param name="sections"></param>
- /// <returns></returns>
- public static List<T> App<T>(params string[] sections)
- {
- List<T> list = new();
- // 引用 Microsoft.Extensions.Configuration.Binder 包
- Configuration.Bind(string.Join(":", sections), list);
- return list;
- }
- public static T Bind<T>(string key, T t)
- {
- Configuration.Bind(key, t);
- return t;
- }
- public static T GetAppConfig<T>(string key, T defaultValue = default)
- {
- T setting = (T)Convert.ChangeType(Configuration[key], typeof(T));
- var value = setting;
- if (setting == null)
- value = defaultValue;
- return value;
- }
- /// <summary>
- /// 获取配置文件
- /// </summary>
- /// <param name="key">eg: WeChat:Token</param>
- /// <returns></returns>
- public static string GetConfig(string key)
- {
- return Configuration[key];
- }
- }
- }
|