3

Custom Compiler Warnings et
C#: Create custom warning in Visual Studio if certain method is used in source code
ont pas aidé car ils traitent de code qui est sous le contrôle de l'auteur.compilateur personnalisé dans Visual Studio 2008

Nous utilisons une suite 3ème partie des contrôles de l'interface utilisateur (DevExpress) dans notre logiciel et je veux générer un avertissement lorsque quelqu'un utilise MessageBox.Show("blah"); au lieu de XtraMessageBox.Show("blah");

Est-il possible de le faire?

Répondre

5

Ce genre de chose peut être traitée assez facilement par une règle personnalisée pour FxCop/code Visual Studio analyse. Si vous utilisez Visual Studio Developer Edition, vous verrez même les échecs de règle affichés à côté de vos avertissements de compilation et des erreurs dans l'IDE.

+0

Merci pour les informations sur FXCop Nicole. Il semble que c'est ce que je vais faire. – AndrewJacksonZA

1

Non, il n'y a pas de voie directe. Si vous y réfléchissez, vous recherchez un avertissement de compilateur pour un code que vous ne compilez même pas.

Si vous voulez vraiment cela, vous pouvez utiliser des méthodes de réflexion sur VOTRE assemblage compilé pour vérifier si les méthodes/assemblages que vous ne voulez pas ont été appelés. Cecil a beaucoup de fonctionnalités dont vous avez besoin. Vous pourriez alors faire cette partie de votre processus de construction.

+0

Merci pour le lien vers Cecil. Projet intéressant – AndrewJacksonZA

2

réel erreur de compilation personnalisée dans .NET, il existe un certain nombre d'outils tiers (gratuits et commerciaux) qui peuvent injecter leur logique de validation dans le processus de construction, généralement après la compilation.

Voici trois façons que je connais pour vous résoudre le problème:

  1. Resharper 5.0 ($) soutiendra custom rules/avertissements.
  2. Dans PostSharp (gratuit) vous pouvez définir l'aspect OnMethodBoundary, remplacer sa méthode CompileTimeValidate et lui envoyer une erreur [post] à la compilation.
  3. NDepend peut être intégré à votre processus de construction (de $) pour appliquer des politiques de codage comme celui