Sur mon projet actuel, j'utilise FxCop pour analyser divers avertissements d'analyse de code. Pour les règles de dénomination, j'ai l'option de changer les noms pour correspondre aux règles ou de prendre la décision de conserver mon orthographe actuelle et supprimer l'avertissement. En ce qui concerne les classes ou les attributs qui sont marqués [Serializable]
, je suis intéressé par les ramifications des changements de nom. En particulier, comment la rétrocompatibilité avec les données sérialisées existantes pourrait-elle être affectée?Classes sérialisables et refactoring de noms
Répondre
Si vous modifiez les noms de champs et besoin de lire les anciennes données sérialisé avant vos modifications, il pourrait être gênant. BinaryFormatter
est en grande partie un sérialiseur basé sur le nom de domaine, et il ne sera pas heureux. Changer les propriétés et les méthodes devrait être parfait tant qu'aucun code externe ne le référence (et assurez-vous d'exécuter vos tests unitaires). Options viables à ce stade: sérialisation manuelle (ISerializable
) et substituts de sérialisation. Beaucoup de douleur.
Si vous utilisez XmlSerializer
/DataContractSerialializer
, vous pouvez nommer le nom de la sérialisation séparément du nom du membre, ce qui facilite grandement la résolution. Et d'autres serializers ne pas utiliser des noms à tous ;-P
XmlSerializer
exemple:
[XmlElement("Color")] // original spelling
public string Colour {get;set;} // now with the correct spelling ;-p
- 1. Collections de classes sérialisables
- 2. Classes de refactoring utilisant des variables globales
- 3. Regroupement dans un espace de noms et préfixation Classes
- 4. Les classes SimpleRepository et l'espace de noms manquent
- 5. Objets sérialisables avec champs MarshalByRefObject
- 6. Organisation des classes en espaces de noms
- 7. refactoring de référence JPA
- 8. Refactoring Guard Clauses
- 9. Mono, objets sérialisables avec MarshalByRefObject
- 10. Refactoring de table DB
- 11. Outils de refactoring PHP
- 12. Refactoring Application Windows Forms
- 13. Espaces de noms et sous-espaces de noms
- 14. erreur de sérialisation Postgres sans transactions sérialisables
- 15. refactoring question
- 16. Solution de refactoring requise
- 17. Extraction de toutes les classes d'un espace de noms spécifique
- 18. Cheatsheet de refactoring de rubis?
- 19. Automatisation de la révision de code et refactoring
- 20. Classes et sous-classes CSS
- 21. "Masquer" les classes linq dans un espace de noms?
- 22. Noms de classes pour les Building Blocks d'application commune
- 23. PHP afficher les noms de toutes les classes déclarées?
- 24. java classes internes noms de fichiers trop longs
- 25. Outil de refactoring pour Spring.NET
- 26. Dois-je capitaliser les noms de constructeurs pour mes classes?
- 27. Java: refactoring/optimisation de code
- 28. Quelle classe pour les tableaux multidimensionnels sérialisables?
- 29. Meilleur tutoriel pour les classes dans System.Collections.Generic et System.Collections.Spaces de noms spécialisés?
- 30. Sérialisation PHP avec des parties non sérialisables