2011-06-23 2 views
1

Je ne sais pas si c'est possible, mais est-il possible en C# de différencier quand vous développez et testez vs le site web est déjà en production?C# État de développement

Précision: En fait, je suis la construction d'un site et je veux pouvoir dire

if(developing or testing mode) 
    do this 
else if(in production) 
    do this 

Je n'ai pas commencé à coder donc il n'y a pas de code disponible, mais je me demande si cela est possible en C#?

Merci

+0

Je serais terrifiée à l'idée d'entrer dans une situation où il travaille dans le débogage et échoue dans la production et il est impossible de comprendre pourquoi. – asawyer

+0

@asawyer heureusement une fois peut faire varier le symbole conditionnel de débogage indépendamment des autres paramètres relatifs au débogage. Cependant, je n'utilise que les conditions de débogage uniquement pour les contrôles de cohérence sans effet secondaire dans les situations où la perte de performance due à ces vérifications est significative. – CodesInChaos

Répondre

4
+0

Et comment le fermez-vous? comme vous le savez, quand vous avez #region blah, vous le fermez aveC#endregion ... y at-il quelque chose comme ça – SuperUser555

+0

Sur le lien, vous pouvez voir la syntaxe. #if DEBUG ... #endif –

1

Si vous voulez un code différent pour réellement être construit pour les environnements différents, vous pouvez consulter la #if Preprocessor Directive.

Si vous êtes tout simplement essayer de faire de votre programme se comportent différemment (mais la compilation dans le même code), vous pouvez simplement ajouter un paramètre dans le fichier app.config/web.config de votre application:

<appSettings> 
    <add key="environment" value="production" /> 
</appSettings> 

et vous pouvez le lire en arrière:

if(ConfigurationManager.AppSettings["environment"] != "production") 
    // do this 
else 
    // do this