Question

Quel est le code statique définissable règle de vérification ne vous souhaitez voir ajouter à FxCop et / ou Gendarme?

Pourquoi voulez-vous voir la règle ajoutée, par exemple quels sont les avantages etc?

Comment votre règle mise en œuvre?

Était-ce utile?

La solution

Personnellement, je préférerais ne pas voir en utilisant les implémentations IDisposable dans les instructions using.

Donc, si vous aviez le code comme ceci:

var fs = new FileStream(...);

// Other code.

fs.Dispose();

Il vous dire de l'utiliser dans un communiqué de using.

L'avantage serait qu'il vous alerte de cas, vous pourriez ne pas être au courant de l'endroit où les objets qui doivent être éliminés ne sont pas disposés en temps opportun.

Cependant, il y a des moments où il est assez une situation valide pour déclarer pas mises en œuvre IDisposable dans une déclaration à l'aide d'une règle que cela devienne une douleur très rapidement. Le plus souvent, ce cas prend une implémentation IDisposable en tant que paramètre à une méthode.

Qu'est-ce que je fais pas signifie des classes est des usages où les détails de mise en œuvre supprimer la nécessité d'appeler Dispose, (par exemple MemoryStream ou DataContext); les mettre en œuvre IDisposable et devrait toujours avoir Dispose appelé sur eux, quelle que soit la la mise en œuvre détails, car il est toujours préférable de le code contre le contrat exposé.

Autres conseils

Je voudrais définir et mettre en œuvre mes propres règles très rapidement. J'ai essayé une fois pour FxCop, mais j'ai trouvé l'API de ne pas être très clair - et il y avait des documents pas trop autour. Je FxCop 1.36, peut-être les choses ont changé ...

Je voudrais voir FxCop avoir une vision claire et facile à utiliser l'interface ... ce serait génial:)

Les règles que j'ai essayé de mettre en œuvre sont les suivants:

  • DocumentInternalMethods
  • DocumentInternalTypes
  • ...

En fait, je voulais faire respecter xml-commentaires sur les membres non publiques.

Je voudrais vraiment l'analyse binaire pour être assez intelligent pour reconnaître la possibilité d'une interface.

Si l'on pouvait déterminer d'approcher les types définis et leurs membres, s'il y a des communes qui pourraient être extrapolées dans une interface.

Il est clair que cela ne devrait pas être plus d'un avertissement, car il est whished parfois d'utiliser explicitement pas une interface.

À thinkin à ce sujet, je voudrais aussi voir l'analyse binaire soit assez intelligent pour vérifier un possible déclassement des modificateurs d'accès.

Il ne devrait pas être difficile de déterminer à si une classe, la propriété ou méthode pourrait être plus restreinte.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top