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.

Foi útil?

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();
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top