Existe um atalho para serializar cada propriedade em um objeto?
-
26-09-2019 - |
Pergunta
Se houver um objeto em que Toda propriedade pública deve ser serializada e propriedades são simples (apenas números ou strings ou objetos já implementando ISerializable
), existe uma maneira fácil de fazê -lo sem ter que criar GetObjectData(SerializationInfo info, StreamingContext context)
E um construtor tomando SerializationInfo
como argumento toda vez?
Eu sei que isso pode ser feito manualmente com reflexão, mas existe um método mágico dentro da estrutura .NET para fazê -lo?
Portanto, a resposta correta é:
Não tente implementar iserializável - é para serialização personalizada. Em vez disso, adicione o atributo [serializável] antes da declaração da sua classe.
Solução
Experimente a classe Binaryformatter - deve fazer o que você precisa
EDIT: Você não deriva do BinaryFormatter - é uma classe de utilidade que você usa para fazer sua serialização. Aqui está um exemplo copiado dos 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();