小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

NETCore 讀取JSON配置文件

 小樣樣樣樣樣樣 2021-03-27

AppSetting.json

{
  "Logging": {
    "LogLevel": {
      "Default": "Information",
      "Microsoft": "Warning",
      "Microsoft.Hosting.Lifetime": "Information"
    }
  },
  "AllowedHosts": "*",
  "Title": "Hello World!",
  "Message": "Hello World - AppSetting - 啊!",
  "ConnectionStrings": {
    "Mysql": "server=localhost;port=3306;userid=root;pwd=123456;database=testefdb",
    "MsSql": "Data Source=.;Initial Catalog=testefdb;User Id=root;Password=123456;"
  }
}
appsetting.json

jsconfig.json

{
  "Name": "Joker",
  "Sex": "Man",
  "Describe": "描述",
  "Message": "Hello World - JsConfig - 啊!"
}
jsconfig.json

構(gòu)造函數(shù)注入?yún)?shù)

public IConfiguration Configuration { get; }

public Startup(IConfiguration configuration)
{
    Configuration = configuration;
}

獲取配置文件參數(shù)

1.獲取指定key的值

var title = Configuration["Title"];
var mysql = Configuration["ConnectionStrings:Mysql"];

2.綁定配置模型對(duì)象

            // 獲取所有配置
            var appSetting = new MyAppSetting();
            Configuration.Bind(appSetting);
            var loggerDefault = appSetting.Logging.LogLevel.Default;

            // 獲取指定節(jié)點(diǎn)配置
            var connectionstrings = new Connectionstrings();
            Configuration.GetSection("ConnectionStrings").Bind(connectionstrings);
            var mssql = connectionstrings.MsSql;

3.注冊(cè)配置選項(xiàng)的服務(wù)

3.1.在 Startup/ConfigureServices 注冊(cè)配置選項(xiàng)服務(wù)

            // 注冊(cè)配置選項(xiàng)服務(wù)
            services.Configure<MyAppSetting>(Configuration);
            // 注冊(cè) 自定義配置信息
            var config = new ConfigurationBuilder().AddJsonFile("jsconfig.json", true, true).Build();
            var name = config["Name"];
            services.Configure<MyJsConfig>(config);

3.2.在 Startup/Configure 獲取配置

        public void Configure(IOptions<MyAppSetting> appSettingOptions, IOptionsSnapshot<MyJsConfig> myJsConfigoptions)
        {
            // 讀取 配置信息【appsettings.json】
            var loggerMicrosoft = appSettingOptions.Value.Logging.LogLevel.Microsoft;

            // 讀取 自定義配置信息【jsconfig.json】
            var describe = myJsConfigoptions.Value.Describe;
        }

*注:

1.在 Startup/ConfigureServices 通過(guò) AddJsonFile 注冊(cè)自定義配置信息,使用IOptionsSnapshot【站點(diǎn)啟動(dòng)后,每次獲取到的值都是配置文件里的最新值】沒(méi)有效果,需要在 Program/CreateHostBuilder 中進(jìn)行配置【有知道的大佬求解釋】

        public static IHostBuilder CreateHostBuilder(string[] args)
        {
            // 創(chuàng)建默認(rèn)Builder,完成各種基礎(chǔ)配置: Host.CreateDefaultBuilder 已注冊(cè) appsetting.json
            IHostBuilder hostBuild = Host.CreateDefaultBuilder(args);
            // 配置默認(rèn)WebHost
            hostBuild.ConfigureWebHostDefaults(webBuilder =>
            {
                webBuilder.UseStartup<Startup>();
            });
            hostBuild.ConfigureAppConfiguration(configBuilder =>
            {
                // 注冊(cè) 自定義配置信息,reloadOnChange:如果文件更改,是否應(yīng)重新加載配置
                configBuilder.AddJsonFile("jsconfig.json", true, reloadOnChange: true);
            });
            return hostBuild;
        }

2.appsetting.jsonjsconfig.json 兩個(gè)配置文件會(huì)同時(shí)生效,同名的值后者優(yōu)先【jsconfig.json

3.早期Core版本獲取動(dòng)態(tài)配置需要手動(dòng)指定 reloadOnchange = true,目前3.1已默認(rèn)配置,只需要使用 Microsoft.Extensions.Options.IOptionsSnapshot 就可以

 

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多