| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788 | using Microsoft.Extensions.Configuration;using Microsoft.Extensions.Configuration.Json;using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;namespace Ropin.Inspection.Common.Helper{    /// <summary>    /// appsettings.json操作类    /// </summary>    public class Appsettings    {        static IConfiguration Configuration { get; set; }        static string contentPath { get; set; }        public Appsettings(string contentPath)        {            string Path = "appsettings.json";            //如果你把配置文件 是 根据环境变量来分开了,可以这样写            //Path = $"appsettings.{Environment.GetEnvironmentVariable("ASPNETCORE_ENVIRONMENT")}.json";            Configuration = new ConfigurationBuilder()               .SetBasePath(contentPath)               .Add(new JsonConfigurationSource { Path = Path, Optional = false, ReloadOnChange = true })//这样的话,可以直接读目录里的json文件,而不是 bin 文件夹下的,所以不用修改复制属性               .Build();        }        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) { }            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 List<T>();            // 引用 Microsoft.Extensions.Configuration.Binder 包            Configuration.Bind(string.Join(":", sections), list);            return list;        }        /// <summary>        /// 根据路径  configuration["App:Name"];        /// </summary>        /// <param name="sectionsPath"></param>        /// <returns></returns>        public static string GetValue(string sectionsPath)        {            try            {                return Configuration[sectionsPath];            }            catch (Exception) { }            return "";        }    }}
 |