2009-11-14 6 views

Répondre

71
#if DEBUG 
your code 
#endif 

Vous pouvez également ajouter ConditionalAttribute à la méthode qui doit être exécutée que lorsque vous construisez en mode débogage:

[Conditional("DEBUG")] 
void SomeMethod() 
{ 
} 
+0

comment fait il sait qu'il est en debug, est-il le prendre de web.config? – Omu

+1

@Omu: J'ai ajouté le lien à MSDN - il explique comment le compilateur supprime sélectivement les appels aux méthodes marquées «Conditionnel». –

+1

Vous choisissez le mode de construction entre la version ou le débogage. #if et Conditionnel sont utilisés au moment de la compilation. Quelques détails supplémentaires: http://bytes.com/topic/c-sharp/answers/237540-conditional-debug-if-debug. Vous trouverez beaucoup d'informations sur google. – empi

11

Je déclare une propriété dans ma page de base, ou vous pouvez le déclarer dans une classe statique que vous avez dans applicaition:

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

Alors pour concrétiser votre désir faire:

if (IsDebug) 
    { 
     //Your code 
    } 
    else 
    { 
     //not debug mode 
    } 
+1

Je suppose que vous vouliez dire #if DEBUG debug = true; #endif – empi

+2

debug sera initialisé à false par défaut, donc la méthode IsDebug retournera toujours false, est-ce que vous avez manqué bool debug = true? – Benny

+0

Les variables locales ne sont ** initialisées ** à rien, donc la révision en cours ne compile pas en mode release. – dtb

62

Detecting ASP.NET Debug mode

if (HttpContext.Current.IsDebuggingEnabled) 
{ 
    // this is executed only in the debug version 
} 

De MSDN:

HttpContext.IsDebuggingEnabled Propriété

Obtient une valeur indiquant si la requête HTTP en cours est en mode débogage.

+0

La meilleure réponse! : D – Chiramisu

+1

C'est juste 'if (HttpContext.IsDebuggingEnabled)' dans MVC 5. – JohnnyHK

Questions connexes