Frage

Wenn ein Objekt, in dem muss jede öffentliche Eigenschaft serialisiert wird und Eigenschaften sind einfach (nur Zahlen oder Strings oder bereits Objekte Implementierung ISerializable), gibt es eine einfache Möglichkeit, es zu tun, ohne zu haben, erstellen GetObjectData(SerializationInfo info, StreamingContext context) und einen Konstruktor SerializationInfo als Argument nimmt jedes Mal?

Ich weiß, dass es manuell mit Reflexion getan werden kann, aber ist es eine magische Methode innerhalb des .NET Framework, es zu tun?


So ist die richtige Antwort lautet:

  

Versuchen Sie nicht, ISerializable zu implementieren - es ist für benutzerdefinierte Serialisierung. Stattdessen fügen Sie das Attribut [Serializable] unmittelbar vor der Klassendeklaration.

War es hilfreich?

Lösung

die BinaryFormatter-Klasse versuchen - sollte das tun, was Sie brauchen,

EDIT: Sie leiten sich nicht von BinaryFormatter - es ist ein Utility-Klasse Sie verwenden, um Ihre Serialisierung zu tun. Hier ist ein Beispiel aus der Dokumentation kopiert

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();
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top