我正在編寫我的第一個ASP.Net代碼Web應用程序,並在我的控制器中我想要一個if
語句來檢查我是否處於調試模式或不。我知道在Startup.cs文件中,我可以檢查env.IsDevelopment()
,但那是因爲IHostingEnvironment
被傳入它。我一直無法找到一種方法來檢查正常控制器內的這種狀態。有沒有一種方法可以在ASP.Net Core中檢測我在控制器內部處於調試模式時的缺失狀態?ASP.Net核心,在控制器中檢測調試與不調試
5
A
回答
8
您應該能夠將IHostingEnvironment注入到控制器構造函數中。
protected readonly IHostingEnvironment HostingEnvironment;
public TestController(IConfiguration configuration, IHostingEnvironment hostingEnv){
this.Configuration = configuration;
this.HostingEnvironment = hostingEnv;
}
[HttpGet]
public IActionResult Test(){
if(this.HostingEnvironment.IsDevelopment()){
// Do something
}
return View();
}
0
IHostingEnvironment
讓你知道應用程序運行的環境。看起來您需要的是用於構建應用程序的構建配置,即Debug/Release。在ASP.NET核心的Web應用程序,以獲取在編譯時該信息,也沒有直接的方法,但你可以有使用條件編譯編譯器指令屬性,像
public static bool IsDebug
{
get
{
bool isDebug = false;
#if DEBUG
isDebug = true;
#endif
return isDebug;
}
}
在運行時的東西,您可以檢查IsDebug屬性的值以確定構建配置。我建議將此屬性添加到可從所有控制器訪問的常見靜態或實用程序類。
相關問題
- 1. 控制器操作的ASP.NET核心集成測試
- 2. asp.net核心mvc控制器單元測試時使用TryUpdateModel
- 3. Asp.Net核心單元測試異步控制器
- 4. RSpec測試不調用控制器
- 5. pdb for ASP.NET核心安全調試
- 6. asp.net核心的調試符號
- 7. VS代碼asp.net核心調試失敗
- 8. Azure網站遠程調試與asp.net核心:符號不加載
- 9. 調試並檢查Java核心API?
- 10. 與Xunit測試asp.net核心2.0項目如何測試httpget
- 11. 調試核心文件
- 12. 核心數據 - insertNewObjectForEntityForName調試
- 13. 在asp.net中測試控制器mvc
- 14. 在Linux服務器上遠程調試asp.net核心
- 15. 在ASP.NET核心創建單元測試
- 16. 錯誤時間XUnit測試在.net核心的控制器
- 17. 調試ASP.NET核心不能在VS 2015上工作
- 18. 控制器的before_save方法在測試中不被調用
- 19. 調試NotificationEvent在內核調試(Windows)中
- 20. 使用Angular 4在vscode中調試Asp.Net核心應用程序
- 21. 使用OCMock和核心數據測試控制器方法
- 22. dotnet核心網絡應用程序單元測試控制器
- 23. 單元測試.NET核心MVC控制器的模擬HttpContext?
- 24. 如何正確模仿IAuthenticationHandler而單元測試ASP.NET核心控制器
- 25. 源線在調試核心轉儲
- 26. RSpec控制器測試:如何檢查@ organization.destroy是否被調用?
- 27. Rails的控制器不測試與ActiveMailer
- 28. 用IIs調試Asp.net核心網不同於直接瀏覽
- 29. C++ - Windows Iot核心遠程調試器 - 調試器無法啓動
- 30. 從asp.net mvc 4控制器寫入Internet Explorer調試控制檯
謝謝你的工作。我是Core和DI的新手,所以這甚至沒有跨過我的想法。 – Matthew