欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

.NET Core自定義配置文件

 更新時間:2022年07月07日 07:51:55   作者:AZRNG  
這篇文章介紹了.NET Core自定義配置文件的方法,文中通過示例代碼介紹的非常詳細(xì)。對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下

前文講獲取配置文件內(nèi)容的時候,是獲取默認(rèn)的appsettings.json配置文件的配置,下面說明下如何進(jìn)行自定義配置文件獲取

1. Json Provider

1.1 構(gòu)建獨(dú)立的IConfiguration

編寫方法

        public static IConfigurationRoot LoadSettings(this IHostEnvironment env)
        {
            return new ConfigurationBuilder()
                 .SetBasePath(AppDomain.CurrentDomain.BaseDirectory)
                 .AddJsonFile("common.json", optional: true, reloadOnChange: false)
                 .AddJsonFile("appsettings.json", optional: true, reloadOnChange: false)
                 .AddJsonFile($"appsettings.{env.EnvironmentName}.json", optional: true, reloadOnChange: false)
                 .AddEnvironmentVariables()
                 .Build();
        }

在Startup構(gòu)造函數(shù)的時候進(jìn)行賦值替換IConfiguration

        private readonly IConfiguration _configuration;
        public Startup(IWebHostEnvironment env)
        {
            _configuration = env.LoadSettings();
        }

該操作添加的配置項(xiàng),只在startup范圍生效。

1.2 在Progrom全局自定義配置

    public static IHostBuilder CreateHostBuilder(string[] args) =>
            Host.CreateDefaultBuilder(args)
            .ConfigureAppConfiguration((hostingContext, config) =>
            {
                var env = hostingContext.HostingEnvironment;
                config.SetBasePath(env.ContentRootPath);
                config.AddJsonFile("devappsettings.json", optional: false, reloadOnChange: true);
            })
                .ConfigureWebHostDefaults(webBuilder =>
                {
                    webBuilder.UseStartup<Startup>();
                });

注意:添加自定義文件的目錄要注意,可能會存在因?yàn)槟夸泦栴}所以找不到配置文件的情況。

2. Memory Provider

允許我們將一個應(yīng)用程序配置直接配置到內(nèi)存中,而不是像傳統(tǒng)方式那樣子必須制定一個物理文件。

            var builder = new ConfigurationBuilder();
            var profileCollection = new Dictionary<string, string>
            {
                {"AuthorProfile:FirstName", "Joydip"},
                {"AuthorProfile:LastName", "Kanjilal"},
                {"AuthorProfile:Address", "Hyderabad, India"}
            };
            builder.AddInMemoryCollection(profileCollection);
            Configuration = builder.Build();

使用

        public static IHostBuilder CreateHostBuilder(string[] args) =>
            Host.CreateDefaultBuilder(args)
            .ConfigureAppConfiguration((hostingContext, config) =>
            {
                var builder = new ConfigurationBuilder();
                var profileCollection = new Dictionary<string, string>
            {
                {"AuthorProfile:FirstName", "Joydip"},
                {"AuthorProfile:LastName", "Kanjilal"},
                {"AuthorProfile:Address", "Hyderabad, India"}
            };
                builder.AddInMemoryCollection(profileCollection);
                config.AddConfiguration(builder.Build());
            })
            .ConfigureWebHostDefaults(webBuilder =>
                {
                    webBuilder.UseStartup<Startup>();
                });

然后就可以通過IConfiguration實(shí)例去獲取了。

3. 公共類獲取配置文件

引用組件

Microsoft.Extensions.Configuration.Json

    public class AppSettings
    {
        private static IConfiguration Configuration { get; set; }

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

        /// <summary>
        /// 封裝要操作的字符
        /// </summary>
        /// <param name="sections"></param>
        /// <returns></returns>
        public static string GetValue(params string[] sections)
        {
            try
            {
                if (sections.Any())
                    return Configuration[string.Join(":", sections)];
            }
            catch (Exception)
            { }
            return "";
        }

        /// <summary>
        /// 遞歸獲取配置信息數(shù)組
        ///引用 Microsoft.Extensions.Configuration.Binder 包
        /// </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>();
            Configuration.Bind(string.Join(":", sections), list);
            return list;
        }
    }

ConfigureServices中配置

services.AddSingleton(new AppSettings(Configuration));

獲取指定配置

var info = AppSettings.GetValue("Logging", "LogLevel");

到此這篇關(guān)于.NET Core自定義配置文件的文章就介紹到這了。希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • asp.net 生成靜態(tài)頁時的進(jìn)度條顯示

    asp.net 生成靜態(tài)頁時的進(jìn)度條顯示

    本文側(cè)重點(diǎn)在講解生成靜態(tài)頁的“進(jìn)度條”,所以將采用模擬的方法。生成靜態(tài)時需要生成的文章必須非常多,否則進(jìn)度條可能一閃而過,看不到效果。
    2009-05-05
  • DataGridView展開與收縮功能實(shí)現(xiàn)

    DataGridView展開與收縮功能實(shí)現(xiàn)

    我們今天將要講到DataGridView之行的展開與收縮,包括功能是如何實(shí)現(xiàn)的,感興趣的小伙伴們可以參考一下
    2015-09-09
  • Repeater與ListView功能概述及使用介紹

    Repeater與ListView功能概述及使用介紹

    Repeater(foreach)用于對綁定數(shù)據(jù)源中的數(shù)據(jù)進(jìn)行遍歷并按格式顯示,Repeater一般只用來展示數(shù)據(jù)ListView會自動生成很多模板,免去手寫模板代碼的麻煩,感興趣的你可以了解下本文
    2013-02-02
  • ajaxToolkit:ModalPopupExtender演示及實(shí)現(xiàn)代碼

    ajaxToolkit:ModalPopupExtender演示及實(shí)現(xiàn)代碼

    ajaxToolkit:ModalPopupExtender可以讓用戶模擬新開一個窗口,就是在模擬新開窗口作多項(xiàng)選項(xiàng)的功能,感興趣的朋友可以了解下,希望此文對你有所幫助
    2013-01-01
  • ASP.NET向Javascript傳遞變量兩種實(shí)現(xiàn)方法

    ASP.NET向Javascript傳遞變量兩種實(shí)現(xiàn)方法

    ASP.NET向Javascript傳遞變量兩種實(shí)現(xiàn)方法,需要的朋友可以參考下
    2012-12-12
  • 在ASP.NET中連接SQL Server的簡單方法

    在ASP.NET中連接SQL Server的簡單方法

    在ASP.NET中訪問SQL Server數(shù)據(jù)庫有兩種方法,它們是System.Data.OleDb和System.Data.SqlClient.下面這段程序以System.Data.SqlClient為例訪問本地數(shù)據(jù)庫服務(wù)器.
    2013-04-04
  • Asp.NET頁面中事件加載的先后順序詳解

    Asp.NET頁面中事件加載的先后順序詳解

    這篇文章主要給大家介紹了關(guān)于Asp.NET頁面中事件加載的先后順序,文中通過圖文以及示例代碼介紹的非常詳細(xì),對大家具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧。
    2017-08-08
  • ASP.NET MVC實(shí)現(xiàn)圖片上傳、圖片預(yù)覽顯示

    ASP.NET MVC實(shí)現(xiàn)圖片上傳、圖片預(yù)覽顯示

    這篇文章主要為大家詳細(xì)介紹了ASP.NET MVC實(shí)現(xiàn)圖片上傳、圖片預(yù)覽顯示的相關(guān)資料,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2016-05-05
  • ASP.NET Core中實(shí)現(xiàn)全局異常攔截的完整步驟

    ASP.NET Core中實(shí)現(xiàn)全局異常攔截的完整步驟

    這篇文章主要給大家介紹了關(guān)于ASP.NET Core中如何實(shí)現(xiàn)全局異常攔截的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-01-01
  • linq to sql 中,如何解決多條件查詢問題,答案,用表達(dá)式樹! (下)

    linq to sql 中,如何解決多條件查詢問題,答案,用表達(dá)式樹! (下)

    在上一篇中,我們做了基于linq to sql 的多條件組合查詢,但通過監(jiān)視數(shù)據(jù)庫發(fā)現(xiàn),這樣做的成本比較高,每次都要取出全部的數(shù)據(jù)到內(nèi)存進(jìn)行篩選.
    2011-08-08

最新評論