J'ai un code qui effectue une opération de type fusion et publipostage, et j'utilise dynamic/ExpandoObject pour assembler les propriétés. Je fais ceci au lieu de construire une classe anonyme parce que les méthodes différentes ajoutent des propriétés avant que la fusion de courrier se produise. Le code fonctionne bien.ExpandoObject provoque une violation de règle CA1502: Évite une complexité excessive
Le problème est Visual Studio Code Analysis classe chaque opération de jeu de propriétés sur ExpandoObject comme 1 point de complexité cyclomatique. Ainsi, une méthode linéaire simple définissant un ensemble de propriétés sans logique de branchement est d'obtenir des scores> 25 qui est la valeur qui viole cette règle.
Est-ce un problème avec mon code, ou un problème avec le fonctionnement de l'analyse de code?
Mon code ressemble à ceci:
dynamic replacementFields = new ExpandoObject();
replacementFields.time = DateTime.Now();
replacementFields.url = Request.Url;
replacementFields.server = Environment.MachineName;
replacementFields.firstName = "Jeff";
... (a bunch more)
replacementFields.phone = "555-1212";