public virtual byte[] Serialize() { if ((TimeZoneCode ?? "").Trim().ToUpper() == "TEST") { return(Encoding.ASCII.GetBytes("tEsT")); } var rv = new List <byte>(); rv.Add(Version); rv.Add(0); var payload = Encoding.ASCII.GetBytes(TimeZoneCode.ToString()); rv.AddRange(payload);; rv[1] = Convert.ToByte(payload.Length); // Total length of payload only byte cs = ChecksumSeed; foreach (byte b in rv) { cs ^= b; } rv.Add(cs); return(rv.ToArray()); }