Question

S'il y a un objet dans lequel tous les biens publics doit être sérialisé et les propriétés sont simples (seulement des nombres ou des chaînes ou des objets déjà mise en œuvre ISerializable), est-il un moyen facile de le faire sans avoir à créer GetObjectData(SerializationInfo info, StreamingContext context) et un constructeur prenant SerializationInfo comme argument à chaque fois?

Je sais que cela peut se faire manuellement avec la réflexion, mais est-il une méthode magique dans le .NET Framework pour le faire?


La réponse correcte est:

  

Ne pas essayer de mettre en œuvre ISerializable - il est pour la sérialisation personnalisée. Ajoutez plutôt le droit d'attribut [Serializable] avant votre déclaration de classe.

Était-ce utile?

La solution

Essayez la classe BinaryFormatter - devrait faire ce que vous avez besoin

EDIT: Vous ne proviennent pas de BinaryFormatter - il est une classe utilitaire que vous utilisez pour faire vos sérialisation. Voici un exemple copié de la documentation

MyObject obj = new MyObject();
obj.n1 = 1;
obj.n2 = 24;
obj.str = "Some String";
IFormatter formatter = new BinaryFormatter();
Stream stream = new FileStream("MyFile.bin", FileMode.Create, FileAccess.Write, FileShare.None);
formatter.Serialize(stream, obj);
stream.Close();
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top