Définir TRACE Constante dans .NET / Visual Studio

Dans Visual Studio 2010, si vous allez à des propriétés d'un projet et aller à l'Onglet création, il y a une case à cocher pour "Définir TRACE Constante." Qui est l'équivalent de faire un #define TRACE.

Toutes les méthodes de Système.Diagnostics.Trace ont un [Conditional("TRACE")] autour d'eux.

Ma question est pourquoi serait-il possible de désactiver cette fonction? Je veux dire, si vous n'avez pas la moindre trace d'auditeurs défini, alors ce n'est pas comme si vous allez remplir un journal ou quelque chose. Il se sent juste bizarre pour moi. Si vous allez à travers l'effort de mettre en appelle à la Trace, pourquoi voudriez-vous pas le contrôler par le biais de l'App/Web.config, mais au lieu de le contrôler via un commutateur de compilateur, ce qui exclut la possibilité de se tourner sur le dos sans recompiler.

Suis-je raté quelque chose? Sûrement, il ne peut être QUE mauvais pour la performance, non?

  • L'appel de la fonction Trace() n'est pas libre, même si il n'y a pas d'auditeurs. Ce qui rend très cher n'est pas difficile.
  • Je ne pense pas que c'est granuleux assez bien. Vous pourriez vouloir pour ne suivre que certains types d'événements dans le déploiement (avertissement, erreur) en vue de la session, considérant que dans le debug vous pouvez tout (informations, commentaires, etc.). Il devrait vraiment être TRACE_ERROR, TRACE_VERBOSE, etc.
  • Voir stackoverflow.com/questions/6911863/... pour plus d'informations sur la TRACE et l'optimisation de votre build.
InformationsquelleAutor aquinas | 2011-11-28