La plupart des gens utilisent la sérialisation .NET (il existe un binaire plus rapide et un formateur XML plus lent, ils dépendent tous deux de la réflexion et sont tolérants aux versions dans une certaine mesure)
Cependant, si vous voulez le moyen le plus rapide (non sûr), pourquoi pas :
Rédaction :
YourStruct o = new YourStruct();
byte[] buffer = new byte[Marshal.SizeOf(typeof(YourStruct))];
GCHandle handle = GCHandle.Alloc(buffer, GCHandleType.Pinned);
Marshal.StructureToPtr(o, handle.AddrOfPinnedObject(), false);
handle.Free();
Lecture :
handle = GCHandle.Alloc(buffer, GCHandleType.Pinned);
o = (YourStruct)Marshal.PtrToStructure(handle.AddrOfPinnedObject(), typeof(YourStruct));
handle.Free();