日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > asp.net >内容正文

asp.net

.NET Core开发实战(第10课:环境变量配置提供程序)--学习笔记

發布時間:2023/12/4 asp.net 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 .NET Core开发实战(第10课:环境变量配置提供程序)--学习笔记 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

10 | 環境變量配置提供程序:容器環境下配置注入的最佳途徑

環境變量的配置提供程序主要適應場景:

1、在 Docker 中運行時

2、在 Kubernetes 中運行時

3、需要設置 ASP.NET Core 的一些內置特殊配置時

環境變量和命令行這兩個提供程序在早期是沒有容器化的,當時一個操作系統會跑多個應用程序,應用程序注入配置的方式一般都是通過文件或者是命令行的方式來注入的,環境變量當時用的比較少

現在在容器化的環境下,有了 Docker 的隔離能力,就意味著每一個應用程序都相當于跑在一個小型的操作系統下面一樣,所以說這個時候 Docker 提供的環境隔離能力讓我們可以使用環境變量來配置應用程序,在 Docker 和 Kubernetes 中,會大量使用環境變量,而不是使用命令行來配置基礎配置

環境變量的配置有如下特點:

1、對于配置的分層鍵,支持使用雙下橫線 "__" 代替 ":"

2、支持根據前綴加載

在某些操作系統,比如說 Linux 下面,冒號作為環境變量的 Key 值是不行的,所以說這里支持用雙下劃線來代替冒號,也就是說當遇到雙下劃線的環境變量時,可以認為這是一個分層鍵

環境變量提供程序還支持根據環境變量的前綴來加載

接下來時代碼演示

源碼鏈接:
https://github.com/witskeeper/geektime/tree/master/samples/ConfigurationEnvironmentVariablesDemo

首先引入三個包

  • Microsoft.Extensions.Configuration.Abstractions

  • Microsoft.Extensions.Configuration

  • Microsoft.Extensions.Configuration.EnvironmentVariables

然后看一下環境變量如何在調試環境下注入

右鍵項目,屬性,調試,環境變量

同樣的在 Properties 下的 launchSettings.json 可以看到配置

{"profiles": {"ConfigurationEnvironmentVariablesDemo": {"commandName": "Project","environmentVariables": {"KEY1": "value1","KEY2": "value2","SECTION1__KEY3": "value3","SECTION1__SECTION2__KEY4": "value4","XIAO_KEY1": "xiao key1"}}} }

主程序

namespace ConfigurationEnvironmentVariablesDemo {class Program{static void Main(string[] args){var builder = new ConfigurationBuilder();builder.AddEnvironmentVariables();var configurationRoot = builder.Build();Console.WriteLine($"key1:{configurationRoot["key1"]}");}} }

啟動程序,輸出如下:

key1:value1

分層鍵

// "SECTION1__KEY3": "value3" // 我們定義了一個分層鍵 SECTION1,用雙下劃線隔開,這個 p 下面有一個 KEY3 的 Key var p = configurationRoot.GetSection("SECTION1"); Console.WriteLine($"KEY3:{p["KEY3"]}");

啟動程序,輸出如下:

KEY3:value3

多級分層鍵

// "SECTION1__SECTION2__KEY4": "value4" var p2 = configurationRoot.GetSection("SECTION1:SECTION2"); Console.WriteLine($"KEY4:{p2["KEY4"]}");

啟動程序,輸出如下:

KEY4:value4

前綴過濾:是指在注入環境變量的時候,指定一個前綴,意味著只注入指定前綴的環境變量,而不是把整個操作系統的所有環境變量注入進去

// "XIAO_KEY1": "xiao key1" // build 之后把讀取到的環境變量的前綴去掉 builder.AddEnvironmentVariables("XIAO_"); var configurationRoot = builder.Build(); Console.WriteLine($"KEY1:{configurationRoot["KEY1"]}"); // "KEY2": "value2" // 在注入的時候,凡是沒有 XIAO_ 開頭的 Key 都沒有注入進來,僅注冊進來需要的一個環境變量值 // 適合當需要加載特定的值,去掉系統其他值的干擾項的場景使用 Console.WriteLine($"KEY2:{configurationRoot["KEY2"]}");

啟動程序,輸出如下:

KEY1:xiao key1 KEY2:value2

創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎

總結

以上是生活随笔為你收集整理的.NET Core开发实战(第10课:环境变量配置提供程序)--学习笔记的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。