.net core 讀取appsetting.json(一):Appsettings幫助類取值方法


創建類Appsettings.cs

    /// <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();


        }

        /// <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 "";
        }
    }

依賴注入IWebHostEnvironment 用來用去路徑

        public IConfiguration Configuration { get; }
        public IWebHostEnvironment Env { get; }
        public Startup(IConfiguration configuration, IWebHostEnvironment env)
        {
            Configuration = configuration;
            Env = env;
        }

注冊Appsettings

 services.AddSingleton(new Appsettings(Env.ContentRootPath));

appsetting.json如下

{
  "Logging": {
    "LogLevel": {
      "Default": "Information",
      "Microsoft": "Warning",
      "Microsoft.Hosting.Lifetime": "Information"
    }
  },
  "AllowedHosts": "*",
  "Qny": {
    "qiniuyunAK": "AK", //ak
    "qiniuyunSK": "SK", //sk
    "qiniuyunBucket": "空間名稱", 
    "prefixPath": "http://www.baidu.com" 
  }
}

使用取值

            Appsettings.app(new string[] { "Qny", "qiniuyunAK" });//AK
            Appsettings.app(new string[] { "Qny", "qiniuyunSK" });//SK
            Appsettings.app(new string[] { "Qny", "qiniuyunBucket" });//空間名稱
            Appsettings.app(new string[] { "Qny", "prefixPath" }); //http://www.baidu.com


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM