J'ai une classe qui implémente l'interface ISerializable pour la sérialisation personnalisée. Cela fonctionne très bien pour les propriétés de cette classe, mais la classe est une classe dérivée. Le problème que je rencontre est que les propriétés de la classe de base ne sont pas sérialisées pour moi. La classe de base a l'attribut sérialisable mais n'implémente pas ISerializable. Existe-t-il un moyen de sérialiser les propriétés de la classe de base sans devoir les ajouter manuellement dans la méthode ISerializable .GetObjectData de la classe dérivée?Sérialisation personnalisée des propriétés de la classe de base
1
A
Répondre
4
De MSDN
Comme je l'ai mentionné, l'interface ISerializable est extrêmement puissant car il permet un type de prendre le contrôle complet sur la façon dont se sérialisé et désérialisé instances du type. Ce pouvoir a un coût; le type est maintenant responsable de la sérialisation de tous les champs de son type de base ainsi que. La sérialisation des champs du type de base est facile si le type de base implémente également l'interface ISerializable - vous appelez simplement la méthode GetObjectData du type de base. Un jour, vous pourriez vous retrouver à définir un type qui doit prendre le contrôle de sa sérialisation, mais dont le type de base n'implémente pas l'interface ISerializable. Dans ce cas, votre classe doit sérialiser manuellement les champs du type de base.
Questions connexes
- 1. Mélange de sérialisation personnalisée et de base?
- 2. sérialisation classe dérivée personnalisée
- 3. .net XmlSerializer, ignorer les propriétés de la classe de base
- 4. Sérialisation de classe C++
- 5. sérialisation d'une classe dérivée qui cache une propriété de base
- 6. Extension de la classe de chaînes avec des propriétés?
- 7. WCF DataContract sérialisation des propriétés en lecture seule?
- 8. Comment lier une classe personnalisée sans propriétés fortement typées
- 9. php classe interface db personnalisée - aucune base de données sélectionnée
- 10. PHP extension des propriétés de classe
- 11. Utilisation interne de classe des propriétés publiques
- 12. Problème de conception de classe de sérialisation .NET
- 13. C# Utilisation de Reflection pour copier les propriétés de la classe de base
- 14. recréer instance dans la classe de base
- 15. CSharp/DotNet: Sérialisation, Génériques et classes de base
- 16. Comment appeler la méthode de la classe de base par pointeur de la classe de base montrant classe dérivée
- 17. Problème de base de la classe php
- 18. La classe de liaison personnalisée ne fonctionne pas correctement
- 19. La façon la plus simple de convertir CArchive pour utiliser la base de données SQL pour la sérialisation?
- 20. Recherche d'une classe qui permet une méthode de tri personnalisée
- 21. Gestion de la base de données à l'aide de la fenêtre des propriétés
- 22. Réinitialisation des propriétés d'une grille de propriétés
- 23. Utilisation des contrôles aspx dans la classe de base
- 24. Comment utiliser une classe personnalisée dans XAML?
- 25. F # Définir à l'aide de la classe personnalisée
- 26. Sérialisation de Boost: spécification d'une version de classe de modèle
- 27. Initialiser une classe personnalisée selon la sélection de l'utilisateur
- 28. Liaison Wpf à la classe avec des propriétés inconnues Nombre
- 29. Comment obtenir la liste des propriétés d'une classe?
- 30. Est-il possible de supprimer des propriétés d'une classe dynamique?