Tengo una lista de objetos y necesito guardarla en algún lugar de mi computadora. He leído algunos foros y sé que el objeto tiene que ser Serializable
. Pero sería bueno si pudiera darme un ejemplo. Por ejemplo, si tengo lo siguiente:
[Serializable]
public class SomeClass
{
public string someProperty { get; set; }
}
SomeClass object1 = new SomeClass { someProperty = "someString" };
Pero, ¿cómo puedo almacenar object1
en algún lugar de mi computadora y luego recuperar?
c#
serialization
stream
Tono Nam
fuente
fuente
Respuestas:
Puede utilizar lo siguiente:
fuente
string attributeXml = string.Empty;
enDeSerializeObject
nunca se usa;)Acabo de escribir una publicación de blog sobre cómo guardar los datos de un objeto en Binary, XML o Json . Tiene razón en que debe decorar sus clases con el atributo [Serializable], pero solo si está utilizando serialización binaria. Es posible que prefiera utilizar la serialización XML o Json. Aquí están las funciones para hacerlo en los distintos formatos. Consulte la publicación de mi blog para obtener más detalles.
Binario
XML
Requiere que el ensamblado System.Xml se incluya en su proyecto.
Json
Debe incluir una referencia al ensamblado Newtonsoft.Json, que se puede obtener del paquete Json.NET NuGet .
Ejemplo
fuente
Deberá serializar en algo: es decir, elegir binario o xml (para serializadores predeterminados) o escribir código de serialización personalizado para serializar en alguna otra forma de texto.
Una vez que haya elegido eso, su serialización (normalmente) llamará a una secuencia que está escribiendo en algún tipo de archivo.
Entonces, con su código, si estuviera usando la serialización XML:
Luego, para deserializar:
NOTA: Este código no se ha compilado, y mucho menos se ha ejecutado; puede haber algunos errores. Además, esto supone una serialización / deserialización completamente lista para usar. Si necesita un comportamiento personalizado, deberá realizar un trabajo adicional.
fuente
1. Restaurar objeto desde archivo
Desde aquí puede deserializar un objeto del archivo de dos formas.
Solución 1: lea el archivo en una cadena y deserialice JSON a un tipo
Solución 2: deserializar JSON directamente desde un archivo
2. Guardar objeto en archivo
desde aquí puede serializar un objeto para archivar de dos formas.
Solución-1: serialice JSON en una cadena y luego escriba la cadena en un archivo
Solución 2: serialice JSON directamente en un archivo
3. Extra
Puede descargar Newtonsoft.Json de NuGet siguiendo el comando
fuente
** 1. Convierta la cadena json en base64string y escríbala o añádala al archivo binario. 2. Lea base64string del archivo binario y deserialice usando BsonReader. **
fuente
Puede utilizar JsonConvert de la biblioteca Newtonsoft. Para serializar un objeto y escribir en un archivo en formato json:
Y para deserializarlo nuevamente en un objeto:
fuente