public void RunExpt1() { // Prepare input entity, we reuse existing init code // and just Inject (via Value Injecter library) var origMsg = new InheritedEntity(); origMsg.FillDummyData(); var origMsgJson = JsonConvert.SerializeObject(origMsg); Console.WriteLine("Original object is {0}", origMsgJson); // Serialization var tmsg = new InheritedEntityThrift(); tmsg.InjectFrom(origMsg); var ms = new MemoryStream(); var tproto = new TCompactProtocol(new TStreamTransport(ms, ms)); tmsg.Write(tproto); var tbytes = ms.ToArray(); Console.WriteLine("Serialized to {0} bytes: {1}", tbytes.Length, BitConverter.ToString(tbytes)); // Deserialization var ms2 = new MemoryStream(tbytes); var tproto2 = new TCompactProtocol(new TStreamTransport(ms2, ms2)); var regenTMsg = new InheritedEntityThrift(); regenTMsg.Read(tproto2); var regenMsg = new InheritedEntity(); regenMsg.InjectFrom(regenTMsg); var regenMsgJson = JsonConvert.SerializeObject(regenMsg); Console.WriteLine("Regenerated object is {0}", regenMsgJson); }
private void AvroMsftToAvro() { // avro-msft ser => avro deser var e = new InheritedEntity(); e.FillDummyData(); // Avro MSFT serialize var eBytes = SerializeAvroMsft(e); // Avro-Apache deserialize var eCodeGenEntity = DeserializeAvro(eBytes); var eAppEntityRegen = new InheritedEntity(); eAppEntityRegen.InjectFrom(eCodeGenEntity); // Compare the object (in JSON, easiest to do so) var eJson = JsonConvert.SerializeObject(e); var eRegenJson = JsonConvert.SerializeObject(eAppEntityRegen); Console.Write("avro-msft ser => avro deser "); if (eJson != eRegenJson) Console.WriteLine("FAILED !!!"); else Console.WriteLine("passed"); }