Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

290
Views
ASP.Net Core, detección de depuración frente a no depuración en un controlador

Estoy escribiendo mi primera aplicación web de código ASP.Net y en mi controlador me gustaría tener una declaración if que verifique si estoy en modo de depuración o no. Sé que en el archivo Startup.cs puedo verificar env.IsDevelopment() pero eso se debe a que se le pasa IHostingEnvironment . No he podido encontrar una manera de verificar este estado dentro de un controlador normal. ¿Hay alguna forma en ASP.Net Core de detectar cuándo estoy en modo de depuración dentro del controlador que me falta?

over 4 years ago · Santiago Trujillo
3 answers
Answer question

0

Actualización : la publicación de @ Pradeep Kumar a continuación es la respuesta más correcta aquí. Esta respuesta solo indica cómo acceder al indicador de entorno IsDevelopment () a través de la inyección de dependencia en un controlador.

Actualización : IHostingEnvironment está obsoleto en .Net Core 3.1, consulte lo siguiente para .Net Core 3.1+ https://stackoverflow.com/a/61703339/2525561

Debería poder simplemente inyectar IHostingEnvironment en el constructor de su controlador.

 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(); }
over 4 years ago · Santiago Trujillo Report

0

IHostingEnvironment le permite conocer el entorno en el que se ejecuta la aplicación. Parece que lo que necesita es la configuración de compilación utilizada para compilar la aplicación, es decir, depurar/liberar. En una aplicación web ASP.NET Core, para obtener esta información en tiempo de compilación, no hay una forma directa, sin embargo, puede tener una propiedad con compilación condicional usando directivas de compilación, algo así como

 public static bool IsDebug { get { bool isDebug = false; #if DEBUG isDebug = true; #endif return isDebug; } }

En tiempo de ejecución, puede verificar el valor de la propiedad IsDebug para determinar la configuración de compilación. Sugeriría agregar esta propiedad a una clase estática o de utilidad común a la que se pueda acceder desde todos sus controladores.

over 4 years ago · Santiago Trujillo Report

0

No es IHostingEnvironment hoy en día, es IWebHostingEnvironment . En ASP.NET Core 3.1, IHostingEnvironment provoca una advertencia

 CS0618 'IHostingEnvironment' is obsolete: 'This type is obsolete and will be removed in a future version. The recommended alternative is Microsoft.AspNetCore.Hosting.IWebHostEnvironment.'

En consecuencia, la respuesta aceptada debe actualizarse de la siguiente manera:

 using Microsoft.AspNetCore.Hosting; using Microsoft.Extensions.Hosting; public class TestController : Controller { protected readonly IWebHostEnvironment HostEnvironment; public TestController(IWebHostEnvironment hostEnv) { this.HostEnvironment = hostEnv; } [HttpGet] public IActionResult Test(){ if (this.HostEnvironment.IsDevelopment()){ // Do something } return View(); } }
over 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!