我正在编写我的第一个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