FxCop a le CollectionPropertiesShouldBeReadOnly rule qui se plaint si votre classe possède une sorte de propriété de collection que les clients peuvent définir. Au lieu de cela, il suggère de rendre la propriété en lecture seule et de fournir une méthode Clear() et des méthodes Add() ou AddRange() pour modifier le contenu de la collection. Je suis d'accord que cela rend l'interface plus propre et plus contrôlée, mais j'ai du mal à faire fonctionner cette interface avec le framework Spring. Si je veux configurer un objet avec une collection de collaborateurs, je dois exposer une propriété de collection pour y injecter les collaborateurs. J'ai regardé à travers the Spring documentation, et je ne peux pas voir aucun moyen de dire à Spring d'appeler la méthode AddRange(), ai-je oublié quelque chose?La règle CollectionPropertiesShouldBeReadOnly de FxCop est-elle incompatible avec la charpente à ressort?
Pour l'instant, je vais exclure l'avertissement avec une note que c'est nécessaire pour la configuration de printemps.
Mise à jour: depuis que je n'ai pas eu des amuse-gueules ici au cours des deux derniers mois, j'ai posté la même question sur le FxCop forum.
Le printemps est un cadre d'injection de dépendance, de sorte qu'il appelle myInstance.Items = ... au moment de la création d'un objet. Cela semble bizarre, mais je pense que les classes conçues pour être utilisées dans un cadre de dépendance-injection/inversion-de-contrôle doivent être plus passives que d'habitude. –
Il semble que cette règle FxCop particulière puisse en effet être "incompatible" avec Spring.NET, malheureusement. –