Is there a shortcut to binary-serialize every property in an object?

493 views Asked by At

If there is an object in which every public property must be serialized and properties are simple (just numbers or strings or objects already implementing ISerializable), is there an easy way to do it without having to create GetObjectData(SerializationInfo info, StreamingContext context) and a constructor taking SerializationInfo as argument every time?

I know that it can be done manually with reflection, but is there a magic method inside the .NET Framework to do it?


So the correct answer is:

Don't try to implement ISerializable - it is for custom serialization. Instead add the [Serializable] attribute right before your class declaration.

1

There are 1 answers

4
Ray On BEST ANSWER

Try the BinaryFormatter class - should do what you need

EDIT: You do not derive from BinaryFormatter - it is a utility class you use to do your serialization. Here is an example copied from the docs

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();