public void FromByteArray(byte[] array) { using (var ms = new MemoryStream(array)) { var buffer = new byte[sizeof(int)]; ms.Read(buffer); Id = BitConverter.ToInt32(buffer); ms.Read(buffer); RegisterNumber = BitConverter.ToInt32(buffer); ms.Read(buffer); var descLength = BitConverter.ToInt32(buffer); buffer = new byte[MaxDescriptionLength]; ms.Read(buffer); Description = Encoding.UTF8.GetString(buffer).Substring(0, descLength); buffer = new byte[Gps1.GetSize()]; ms.Read(buffer); Gps1.FromByteArray(buffer); ms.Read(buffer); Gps2.FromByteArray(buffer); } }
public int GetSize() { return(sizeof(byte) * MaxDescriptionLength // Description full length + sizeof(int) * 3 // Id, RegisterNumber, Real Description length + Gps1.GetSize() * 2); }