10
votes

C # - Désactiver le mot-clé dynamique

Y a-t-il un moyen de désactiver l'utilisation du mot clé "dynamique" dans .NET 4?

Je pensais que la fonctionnalité d'analyse de code de VS2010 pourrait avoir une règle pour échouer la construction si le mot clé dynamique est utilisé mais que je ne pouvais pas aller bien.


4 commentaires

Pourquoi? Il n'y a rien de mal à propos de la dynamique.


Essayez-vous de l'appliquer en règle générale parmi une équipe de développeurs? Dans ce cas, je suggère deux outils: Grep et une batte de cricket.


Batte de cricket? Allez, les pousds de bétail sont beaucoup plus efficaces. Enasco.com/product/c13638n


Wow! Il y a beaucoup de développeurs intelligents autour. J'essaie d'apaiser la direction en désactivant la dynamique afin que je puisse commencer à utiliser VS2010 et .net4. Je ne pense pas que la dynamique soit diabolique, tout à fait le contraire lorsque c'est utilisé de manière appropriée.


5 Réponses :


5
votes

Cela fait partie de la langue C # 4.0, donc non pas vraiment.

Vous pouvez utiliser FXCop pour le chercher et échouer la construction si elle le rencontre.

Le style COP pourrait fonctionner à la place:

http://code.msdn.microsoft.com/sourcéanalyse

Voici un lien qui parle du même problème et de la manière dont la flic de style pourrait être la réponse. Il y a aussi un message sur la façon d'obtenir une flic FX pour rechercher potentiellement le mot clé dynamique, bien que ce ne soit pas parfait.

http: // social .msdn.microsoft.com / Forums / FR / VSTScode / Filetage / 8CE407BA-BLCD-CA4701C3A76F


3 commentaires

Turn Sortir FXCop peut trouver des champs de niveau de classe dynamique, des paramètres de la méthode et des retours de méthode via le dynamicattribute mais ne peuvent pas trouver de variables locales à l'intérieur des méthodes B / C. Ils sont convertis en objets sans aucun attribut.


@ Cheif7 J'ai fait de plus en plus de flics de style et de style pourrait être la voie à suivre. J'ai posté un lien vers des messages sur le même problème.


C'est mon post. Styecop semble être bien fonctionnera bien. Merci pour l'aide.



2
votes

cible .NET 1.0? : -)

ou les critiques de code.

(ou, pour être moins facétieux, il devrait être assez facile d'écrire une règle personnalisée FXCOP ou CA pour interdire l'utilisation de dynamique)

Ne voudriez-vous pas simplement tuer pour une macro C ++ en ce moment? : -)


0 commentaires

3
votes

Le mot clé dynamique n'est pas mauvais, mais l'utiliser pourrait être.

Cela conduit à des erreurs de code que vous ne pouvez trouver que pendant l'exécution. Cela devrait être évité à tout prix. Les erreurs d'exécution sont mauvaises. Compiler les erreurs de temps sont bonnes.

Vous pouvez utiliser quelque chose comme ce qui suit pour définir vos propres normes. http://joel.fjorden.se/static.php?page=codestyleforcerleight


2 commentaires

La réflexion fait ça aussi. Personne n'interse jamais la réflexion, sa seule sorte de sens de ce que c'est un outil très spécifique pour un travail très spécifique, et parfois, le manque de perfection et le manque d'erreurs de temps de compilation en valent la peine, car il n'y a pas littéralement aucune autre façon de faire certains genres de choses. Idem avec dynamique. L'utilisation de partout par défaut est moronic, mais en même temps, il existe certains types de choses où le compromis en vaut la peine.


Lecture de fichiers à partir d'un disque qui pourrait être invalide, ou en supposant que des fichiers de registre ou de configuration existent, etc. est également "uniquement trouvé au moment de l'exécution". :-)



2
votes

Supprimer la référence à Microsoft.cshaarp.dll , et je pense que toutes les utilisations de dynamique ne compileront pas.


0 commentaires

1
votes

Je ne suis pas sûr de comprendre ce que cette peur irrationnelle du mot clé dynamique est. Il y avait ce type d'hystérie sur les variables anonymes et le mot-clé Var pour .NET 3.5 Sauf que c'était juste idiot, car ceux-ci sont légitimes types définis statiquement.

Le mot clé dynamique sert un objectif hautement spécialisé, je ne vois pas pourquoi aucune personne aurait le désir de l'utiliser sans comprendre pourquoi. Cependant, l'arrêt de ce qui se produirait peut être résolu avec une réunion d'équipe expliquant certaines des nouvelles fonctionnalités de .NET 4, y compris le mot clé dynamique. Je suppose que vous êtes plus d'une personne âgée ou de la principale dirigeante de l'équipe; Il devrait être assez facile de dire à votre équipe s'ils ont jamais eu besoin d'utiliser le mot-clé dynamique pour venir vous voir d'abord.

C'était exactement les instructions que j'ai données à mon équipe car je trouve qu'il est peu probable que nous utiliserions jamais le mot clé dynamique, car nous n'écrivons pas l'activité INTEROP. Et passé que je vais reporter tout type d'utilisation de proxy dynamique à une bibliothèque établie comme Linfu ou Castle et laissez-la la mise en place de proxies dynamiques à utiliser ou ne pas utiliser le mot-clé dynamique.


0 commentaires