serializacion - serializar objeto c# xml
Cómo clase serial de serialización binaria (1)
Primero agregue el atributo [Serializable] antes de la declaración de clase. Obtenga más información acerca de los atributos en: https://msdn.microsoft.com/en-us/library/z0w1kczw.aspx
[Serializable]
public class MyClass
{
private byte byteValue;
private int intValue;
private MyClass myClass1= null;
private MyClass myClass2 = null;
}
Nota: todos los miembros de la clase también deben ser serializables. Para serializar el objeto a binario puede usar el siguiente ejemplo de código:
using (Stream stream = File.Open(serializationPath, FileMode.Create))
{
var binaryFormatter = new System.Runtime.Serialization.Formatters.Binary.BinaryFormatter();
binaryFormatter.Serialize(stream, objectToSerialize);
stream.Close();
}
Y para la deserialización de binario:
using (Stream stream = File.Open(serializationFile, FileMode.Open))
{
var binaryFormatter = new System.Runtime.Serialization.Formatters.Binary.BinaryFormatter();
deserializedObject = (MyClass)binaryFormatter.Deserialize(stream);
}
Tengo esta clase personalizada:
public class MyClass
{
private byte byteValue;
private int intValue;
private MyClass myClass1= null;
private MyClass myClass2 = null;
}
Obviamente también tengo métodos de constructor y get / set.
En mi forma principal inicializo una gran cantidad de objetos MyClass
(tenga en cuenta que en el objeto MyClass
tengo referencia a otros 2 objetos MyClass). Después de la inicialización, repito un primer elemento de MyClass
, llámalo, por ejemplo, "raíz". Entonces, por ejemplo, hago algo como:
MyClass myClassTest = root.getMyClass1();
MyClass myClassTest2 = myClassTest.getMyClass1();
y así.
No, quiero almacenar en un archivo binario, todo el objeto MyClass
instanciado, para volver a obtenerlos luego del reinicio del software.
No tengo idea de cómo hacer esto, ¿alguien puede ayudarme? Gracias.