簡體   English   中英

如何覆蓋 appsettings.json 或 appsettings。<envrionment> .json 文件以編程方式使用 .net 核心 web api 和 C#?</envrionment>

[英]How to overrite appsettings.json or appsettings.<envrionment>.json file(s) programtically using .net core web api with C#?

一個場景的當前問題:我們的應用程序代碼部署在具有 dev api 服務(第三方 api 服務:DEV)的開發環境中。 現在,由於維護,該第三方服務在開發環境中已關閉,我們的測試被阻止。 因此架構師決定指向 QA 並將代碼重新部署到 DEV 環境中。

在我們將更改推送到 DEV 團隊之前必須等待測試。

為了避免這種情況,我們在這里尋找的是,

讀取這些文件: appsettings.jsonappsetting.<environment>.json並以可編輯的方式加載到 UI 中。 當需要像上述情況那樣進行更改時,我們更改並更新我們的appsettings.jsonappsetting.<environment>.json文件。

這樣我們就可以節省時間來重新部署這個文件並進行新的更改。

但我們的問題是,我們所有來自appsettings.jsonappsetting.<environment>.json這些文件的數據都是在啟動期間加載的。 稍后,我們在環境中更新並加載文件,但這些值將如何通過代碼中的任何服務讀取它?

希望你能理解我的場景並期待你的寶貴建議

如果我理解您的要求,您將需要使用設計模式,例如wrapper

創建一個 singleton 服務,它包含屬性中的所有設置。 不要在服務的任何地方直接使用IConfiguration ,而是切換到包裝器。 由於這一點,您可以控制設置的來源,並通過覆蓋包裝器中的屬性來覆蓋設置。 得益於此解決方案,您不必修改源文件並重新加載整個應用程序。

還要記住適當的緩存和封裝 - 如果您在某處緩存值,請確保您牢記這一點。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM