現在我正在配置一個系統來監視和做特定隊列的東西。我需要配置隊列每個隊列處理程序應該與互動的名單,所以我做一個appsettings.json
文件看起來像:是否可以在.net內核配置中清除數組?
{
"AppSettings": {
"Queues": [
{
"Name": "First",
"Type": "Type1"
} ]
}
}
的隊列,同時發展將不同於隊列機X將是我將處理處理,這將與Y將要處理的隊列機器不同。
現在,我將這個系統作爲Webjobs部署在Azure上,並使用Azure中的應用程序設置面板通過環境變量覆蓋應用程序的設置。
但是,這在陣列上發生故障。目前我通過使用AppSettings:Queues:0:xxxxx
語法覆蓋,並且工作正常。我甚至可以通過改變該語法中的索引,通過環境變量向列表添加其他條目。
問題是,在開發過程中,我添加了一個額外的隊列條目到本地appsettings.json
文件,以測試一些新功能。部署後,即使沒有設置AppSettings:Queues:1:xxxxx
環境變量,它仍在使用部署的appsettings.json
文件中的第2項。
有沒有什麼辦法來告訴覆蓋,我想要一個乾淨的數組?這會造成不確定性,因爲我們無法確保開發人員不會添加測試項目,這將導致非測試環境做錯誤的事情。這將導致我們無法部署appsettings.json
,這意味着我們無法在所有安裝中部署和管理理智默認值。
唯一的解決方法是提出一個任意數字(如10),併爲它們創建null覆蓋,但我相信這只是在向後推動罐子。
你有沒有考慮在開發過程中使用appsettings.Development.json? – kloarubeek
我想這是解決我的整體情況的一個很好的觀點,但我仍然認爲這是一個問題,因爲它使得數組覆蓋非常敏感並且容易出錯。 – KallDrexx
只能在appsettings.Development中創建設置。json,保持appsettings.json清晰並使用Azure Web應用程序中的appsettings來存儲生產設置? – kloarubeek