2009-04-29 5 views
4

J'utilise la dernière version de resharper. Juste téléchargé et installé la semaine dernière, donc je suis nouveau à l'utiliser. Le problème que j'ai est que dans mon application ASP.NET MVC tous mes contrôleurs disent qu'ils ne sont jamais utilisés et toutes les méthodes dans le contrôleur disent qu'ils ne sont jamais utilisés.Est-ce que resharper a des problèmes avec asp.net mvc?

Y at-il un moyen de supprimer les messages ou de resharper pour comprendre qu'ils sont utilisés?

+0

Oui, ceci est un problème dans la version actuelle de resharper. En outre, resharper semble avoir un problème avec les vues fortement typées dans ASP.NET MVC lorsque l'analyse à l'échelle de la solution est activée. – Marek

Répondre

9

Vous pouvez activer/désactiver les différents avertissements et astuces que Resharper vous fournit. Cependant, si vous écrivez des tests unitaires, ils seront utilisés et Resharper sera content.

mise à jour

Vous pourriez envisager de dire ReSharper d'ignorer les membres inutilisés de votre contrôleur en faisant cela en haut et en bas de votre classe contrôleur ...

public class MyController: Controller 
{ 
    // ReSharper disable UnusedMember.Global 

    ...   

    // ReSharper restore UnusedMember.Global 
} 

... ou , au moins mettre ces commentaires autour des méthodes publiques sur votre contrôleur (j'utilise StyleCop et donc toutes les méthodes publiques seront regroupées de toute façon.Ceci est raisonnablement discret, et se débarrasser de cet avertissement de Resharper

+0

Tests unitaires, hein? Quels sont ces? :) –

+5

Méchant garçon. Ecrire 1000 fois "Je dois écrire des tests unitaires";) –

+0

Je veux des avertissements quand les choses ne sont pas utilisées, mais les contrôleurs sont utilisés. Ce que je demande vraiment, c'est que resharper puisse le savoir. –

1

Je ne connais aucun moyen de forcer Resharper à "savoir" qu'une méthode est utilisée (je n'ai jamais rencontré ce problème avec Resharper).

Si vous ne souhaitez pas activer/désactiver globalement diverses options d'inspection, vous pouvez choisir de supprimer des messages d'inspection spécifiques avec un commentaire. Comme si ...

// ReSharper disable UnusedPrivateMember 
private void NotUsed() 
{ 
    // ... Code ... 
} 
// ReSharper restore UnusedPrivateMember 
6

Eh oui, la version actuelle de ReSharper ne place pas de références sur les contrôleurs MVC (bien que, suivant la volonté).

En attendant, vous pouvez marquer la classe de contrôleur et les méthodes d'action avec l'attribut ImplicitUse. Vous pouvez le trouver dans l'assemblage JetBrains.Annotations. Si vous ne voulez pas de dépendance externe, vous pouvez ajouter les attributs d'annotations nécessaires à votre projet, vous les trouverez dans ReSharper-> Options-> Code Inspection-> Annotation de code-> Copier l'implémentation par défaut.

+0

C'est vraiment la meilleure solution - merci! –

Questions connexes