每天資訊asp.net core下的配置系統Configuration

菜單

asp.net core下的配置系統Configuration

在。NET Core中配置系統的可選方式比在傳統的。NET Framework下更多,主要包括:

(1) 記憶體資料

(2) JSON資料方式

(3) XML資料方式

(4) 環境變數方式

(5) 命令引數方式

在實際開發中,程式部署執行後,如果修改配置檔案,是需要配置檔案的動態熱載入,也會在這裡進行簡單介紹。

透過NuGet包管理器,為專案新增如下程式集資訊:

Microsoft。Extensions。Configuration

Microsoft。Extensions。Configuration。CommandLine

Microsoft。Extensions。Configuration。EnvironmentVariables

Microsoft。Extensions。Configuration。Json

Microsoft。Extensions。Configuration。Xml

asp.net core下的配置系統Configuration

一、記憶體資料方式

此方式是預設支援的方式,我們透過程式程式碼建立

IEnumerable>

的變數,並在程式程式碼中進行呼叫;

//1。記憶體資料

var

initialData = new

List<KeyValuePair<string, string>>

();

initialData。Add(new KeyValuePair(“P1”, “Java”));

initialData。Add(new KeyValuePair(“P2”, “C#”));

initialData。Add(new KeyValuePair(“P3”, “PHP”));

IConfiguration config =

new ConfigurationBuilder()。SetBasePath(Environment。CurrentDirectory) 。

AddInMemoryCollection

(initialData) 。Build();

Console。WriteLine(“InMemory Way:”+config[“P2”]);

asp.net core下的配置系統Configuration

二、JSON資料方式

在專案根目錄下建立一個appsettings。json檔案,透過檔案屬性設定“複製到輸出目錄”值為“始終複製”,如下圖所示:

asp.net core下的配置系統Configuration

asp.net core下的配置系統Configuration

透過程式碼進行呼叫

IConfiguration config =

new ConfigurationBuilder()。SetBasePath(Environment。CurrentDirectory)

AddJsonFile

(“appsettings。json”)。Build();

Console。WriteLine(“JSON Way:” + config[“P3”]);

asp.net core下的配置系統Configuration

三、XML資料方式

在專案根目錄下建立一個appsettings。xml檔案,透過檔案屬性設定“複製到輸出目錄”值為“始終複製”,如下圖所示:

asp.net core下的配置系統Configuration

asp.net core下的配置系統Configuration

透過程式碼進行呼叫

IConfiguration config =

new ConfigurationBuilder()。SetBasePath(Environment。CurrentDirectory)

AddXmlFile

(“appsettings。xml”) 。Build();

Console。WriteLine(“XML Way:” + config[“P1”]);

asp.net core下的配置系統Configuration

四、環境變數方式

設定環境變數ASPNETCORE_ENVIRONMENT值為test,如下圖所示:

asp.net core下的配置系統Configuration

專案根目錄下建立一個appsettings-test。json檔案,內容如下圖所示:

asp.net core下的配置系統Configuration

透過檔案屬性設定“複製到輸出目錄”值為“始終複製”,如下圖所示:

asp.net core下的配置系統Configuration

透過程式碼進行呼叫

IConfiguration config =

new ConfigurationBuilder()。SetBasePath(Environment。CurrentDirectory)

。AddJsonFile(“appsettings-” +

Environment.GetEnvironmentVariable

(“ASPNETCORE_ENVIRONMENT”)+ “。json”)。

AddEnvironmentVariables

() 。Build();

Console。WriteLine(“Environment Variables:” + Environment。GetEnvironmentVariable(“ASPNETCORE_ENVIRONMENT”));Console。WriteLine(“Environment Variables Way:” + config[“datasource:host”]);

asp.net core下的配置系統Configuration

五、命令列方式

程式碼呼叫

IConfiguration config =

new ConfigurationBuilder()。SetBasePath(Environment。CurrentDirectory)

AddCommandLine

(args) 。Build();

Console。WriteLine(“CommandLine Way:” + config[“P1”]);

執行時,透過dotnet命令並帶上引數,輸出結果如下圖所示:

asp.net core下的配置系統Configuration

六、配置檔案熱載入

//熱載入方式,AddJsonFile的第三個引數

IConfiguration config =

new ConfigurationBuilder()。SetBasePath(Environment。CurrentDirectory)

。AddJsonFile(“appsettings-test。json”, false,

true

)。Build();

while (true)

{

Console。WriteLine(config[“

datasource:host

”]);

Thread。Sleep(1000);

}

Microsoft。Extensions。Configuration

Microsoft。Extensions。Configuration

asp.net core下的配置系統Configuration

在持續讀取配置檔案並輸出引數值過程中,開啟配置檔案,修改host地址,然後也會輸出修改後的值。