.NET Core自定義配置文件
前文講獲取配置文件內(nèi)容的時(shí)候,是獲取默認(rèn)的appsettings.json配置文件的配置,下面說(shuō)明下如何進(jìn)行自定義配置文件獲取
1. Json Provider
1.1 構(gòu)建獨(dú)立的IConfiguration
編寫(xiě)方法
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ù)的時(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>();
});注意:添加自定義文件的目錄要注意,可能會(huì)存在因?yàn)槟夸泦?wèn)題所以找不到配置文件的情況。
2. Memory Provider
允許我們將一個(gè)應(yīng)用程序配置直接配置到內(nèi)存中,而不是像傳統(tǒng)方式那樣子必須制定一個(gè)物理文件。
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>();
});然后就可以通過(guò)IConfiguration實(shí)例去獲取了。
3. 公共類(lèi)獲取配置文件
引用組件
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自定義配置文件的文章就介紹到這了。希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Asp.net中通過(guò)Button打開(kāi)另一個(gè)的frm
本文通過(guò)實(shí)例代碼給大家介紹了asp.net中通過(guò)button打開(kāi)另一個(gè)frm的方法,非常不錯(cuò),需要的朋友參考下吧2016-12-12
ScriptManager.RegisterStartupScript()方法在ajax頁(yè)面無(wú)效的解決方法
ScriptManager.RegisterStartupScript()方法在ajax頁(yè)面無(wú)效的解決方法2010-03-03
ASP.NET MVC 2右鍵菜單和簡(jiǎn)單分頁(yè)實(shí)例講解
在這里我們將討論的是通過(guò)一個(gè)插件實(shí)現(xiàn)ASP.NET MVC 2中的右鍵菜單和一個(gè)相當(dāng)簡(jiǎn)單的分頁(yè),希望對(duì)大家有所幫助。2015-09-09
IE10下Gridview后臺(tái)設(shè)置行高不起作用解決方法
GridView1.HeaderStyle.Height=17發(fā)現(xiàn)在IE10 中不起作用,經(jīng)過(guò)反復(fù)測(cè)試修改為e.Row.Cells[0].Height=17即可解決問(wèn)題,有類(lèi)似問(wèn)題的朋友可以參考下哈2013-04-04
基于ABP框架實(shí)現(xiàn)數(shù)據(jù)字典開(kāi)發(fā)
本文詳細(xì)講解了基于ABP框架實(shí)現(xiàn)數(shù)據(jù)字典開(kāi)發(fā),文中通過(guò)示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-12-12
ASP.NET CORE學(xué)習(xí)教程之自定義異常處理詳解
這篇文章主要給大家介紹了關(guān)于ASP.NET CORE學(xué)習(xí)教程之自定義異常處理的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-01-01
ASP.NET 恢復(fù)備份Sqlserver實(shí)現(xiàn)代碼
在線恢復(fù)和備份SQL Server的代碼,需要的朋友可以參考下。2010-04-04
.NET中RDLC循環(huán)處理數(shù)據(jù)的應(yīng)用分析
本篇文章介紹了,.NET中RDLC循環(huán)處理數(shù)據(jù)的應(yīng)用分析。需要的朋友參考下2013-05-05

