¿Hay un acceso directo al sistema binario-serializar todas las propiedades de un objeto?
-
26-09-2019 - |
Pregunta
Si hay un objeto en el que cada propiedad pública debe ser serializado y propiedades son simples (sólo números o cadenas u objetos que ya lo aplican ISerializable
), ¿hay una manera fácil de hacerlo sin tener que crear GetObjectData(SerializationInfo info, StreamingContext context)
y un constructor teniendo SerializationInfo
como argumento cada vez?
Sé que se puede hacer manualmente con la reflexión, pero ¿hay un método mágico dentro del .NET Framework para hacerlo?
Así que la respuesta correcta es:
No tratar de implementar ISerializable - es para la serialización personalizado. En su lugar añadir el [Serializable] atributo justo antes de su declaración de la clase.
Solución
Trate la clase BinaryFormatter - debería hacer lo que tiene
EDIT: Usted no se derivan de BinaryFormatter - es una clase de utilidad que se utiliza para hacer su serialización. Este es un ejemplo copiado de los documentos
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();