public void Versioning() { var v1 = new Version1 { MyProperty1 = 100, MyProperty2 = 200, MyProperty3 = 300 }; var v2 = new Version2 { MyProperty1 = 100, MyProperty2 = 200, MyProperty3 = 300, MyProperty5 = 500, }; var v0 = new Version0 { MyProperty1 = 100, }; var v1Bytes = MessagePackSerializer.Serialize(v1); var v2Bytes = MessagePackSerializer.Serialize(v2); var v0Bytes = MessagePackSerializer.Serialize(v0); var a = MessagePackSerializer.Deserialize <Version1>(v1Bytes); a.MyProperty1.Is(100); a.MyProperty2.Is(200); a.MyProperty3.Is(300); var b = MessagePackSerializer.Deserialize <Version2>(v2Bytes); b.MyProperty1.Is(100); b.MyProperty2.Is(200); b.MyProperty3.Is(300); b.MyProperty5.Is(500); var c = MessagePackSerializer.Deserialize <Version0>(v0Bytes); c.MyProperty1.Is(100); // smaller than schema var v2_ = MessagePackSerializer.Deserialize <Version2>(v1Bytes); v2_.MyProperty1.Is(v1.MyProperty1); v2_.MyProperty2.Is(v1.MyProperty2); v2_.MyProperty3.Is(v1.MyProperty3); v2_.MyProperty5.Is(0); // larger than schema var v0_ = MessagePackSerializer.Deserialize <Version0>(v1Bytes); v0_.MyProperty1.Is(v1.MyProperty1); }
public void Versioning() { var v1 = new Version1 { MyProperty1 = 100, MyProperty2 = 200, MyProperty3 = 300 }; var v2 = new Version2 { MyProperty1 = 100, MyProperty2 = 200, MyProperty3 = 300, MyProperty5 = 500, }; var v0 = new Version0 { MyProperty1 = 100, }; var v1Bytes = serializer.Serialize(v1); var v2Bytes = serializer.Serialize(v2); var v0Bytes = serializer.Serialize(v0); var a = serializer.ToJson(v1Bytes); var b = serializer.ToJson(v2Bytes); var c = serializer.ToJson(v0Bytes); serializer.Deserialize <Version1>(v1Bytes).IsNotStructuralEqual(v1Bytes); serializer.Deserialize <Version2>(v2Bytes).IsNotStructuralEqual(v2Bytes); serializer.Deserialize <Version0>(v0Bytes).IsNotStructuralEqual(v0Bytes); // smaller than schema var v2_ = serializer.Deserialize <Version2>(v1Bytes); v2_.MyProperty1.Is(v1.MyProperty1); v2_.MyProperty2.Is(v1.MyProperty2); v2_.MyProperty3.Is(v1.MyProperty3); v2_.MyProperty5.Is(0); // larger than schema var v0_ = serializer.Deserialize <Version0>(v1Bytes); v0_.MyProperty1.Is(v1.MyProperty1); }