2017-09-22 103 views
1

我想要支持的不僅僅是在Microsoft.AspNetCore.Hosting.EnvironmentName中定義的內置「開發」,「分段」和「生產」環境。我意識到,在程序初始化期間設置環境時,我可以自由地創造任何想要的名稱,但這不是問題。在Microsoft.AspNetCore.Hosting.HostingEnvironmentExtensions中定義了3種擴展方法,看起來無處不在IsDevelopment(),IsStaging()IsProduction()Asp.Net Core 2.0中的自定義環境

如何自定義IsDevelopment()的行爲,以便多個自定義環境名稱均返回true?

例如,我想區分本地開發和遠程開發; 2環境與他們自己的配置設置,但都被視爲「發展」。另一個例子可能是多個「分段」環境;一個用於內部測試,一個用於外部/客戶端測試,但都被認爲是「分段」。

我不相信自己可以編寫自己的IsDevelopment()擴展方法,並且安全地確保我始終青睞微軟的(Closer is better)。例如。我的項目中的代碼可能會使用我的代碼,但當Mvc中的代碼本身調用它時呢?

回答

0

目前並沒有辦法做到這一點,由於存在和使用的3 IsDevelopment()IsStaging(),並且IsProduction()擴展方法

我基本上最終做的是定義我自己的自定義環境,並提供從每個背面到Asp.Net Core中定義的3的映射。

在Main()中,我創建了一個我的專用配置類的實例;它會計算出代碼運行的自定義環境。然後,當我調用WebHostBuilder.UseEnvironment()時,我使用該類中的一個屬性,該屬性指示與我的自定義屬性對應的Asp.Net Core環境。最後,我將我的班級(單身人士)注入DI容器,以便可以根據需要使用它。

相關問題