J'ai utilisé la sérialisation .NET par défaut pour une classe avec un membre System.Drawing.Color. Le code est maintenant utilisé par les gens, et j'ai besoin d'ajouter un membre supplémentaire à la classe, mais je désérialise toujours les anciennes versions.Sérialisation de System.Drawing.Color dans .NET
J'ai donc essayé la méthode standard: L'interface ISerializable, en utilisant les méthodes SerializationInfo pour obtenir les membres int et string. Le problème: Ma classe a également un membre System.Drawing.Color, mais SerializationInfo ne fournit pas une méthode "GetColor" lisant ce type de données. J'ai essayé de l'obtenir comme un int et comme une chaîne de caractères, et de le lancer sur System.Drawing.Color, mais pas de chance.
Est-ce que quelqu'un sait comment désérialiser un System.Drawing.Color de SerializationInfo?
Merci pour les réponses. Malheureusement [OptionalField] ne fonctionne qu'avec le BinaryFormatter (j'utilise le SoapFormatter). Votre suggestion GetValue compilée, mais maintenant je reçois l'exception: "Top Object ne peut pas être instancié pour l'élément 'foreColor'" (foreColor est l'élément que j'essaye de désérialiser.) Une idée de ce qui cause cette erreur, ou une alternative approches? Merci! – user20493