public void Deserialize_WhenFrameReqPqDeserialized_ThenExpectedObjectReturned() { // arrange byte[] bytes = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0x78, 0x97, 0x46, 0x60, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F, 0x10 }; TLFrame <ReqPq> expectedFrame = new TLFrame <ReqPq> { AuthKey = 0, MessageId = 0, MessageLength = 20, Content = new ReqPq { Nonce = new byte[] { 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F, 0x10 } } }; // act TLFrame <ReqPq> result = TLObjectSerializer.Deserialize <TLFrame <ReqPq> >(bytes.ToList()); // assert result.ShouldBeEquivalentTo(expectedFrame); }
public T Deserialize <T>(string parameter) { if (string.IsNullOrEmpty(parameter)) { return((T)(object)null); } if (parameter.StartsWith("{")) { return(SerializationService.Json.Deserialize <T>(parameter)); } var length = parameter.Length; var bytes = new byte[length / 2]; for (int i = 0; i < length; i += 2) { bytes[i / 2] = Convert.ToByte(parameter.Substring(i, 2), 16); } if (parameter.StartsWith("0EFFFFFF")) { return((T)(object)bytes.Skip(4).ToArray()); } var buffer = bytes.AsBuffer(); var from = TLObjectSerializer.Deserialize(buffer); return((T)(object)from); }