public virtual void TestNestedPortableVersionedSerializer()
        {
            SerializationServiceBuilder builder1 = new SerializationServiceBuilder();

            builder1.SetPortableVersion(6);
            builder1.AddPortableFactory(1, new MyPortableFactory());
            ISerializationService ss1 = builder1.Build();

            SerializationServiceBuilder builder2 = new SerializationServiceBuilder();

            builder2.SetPortableVersion(6);
            builder2.AddPortableFactory(1, new MyPortableFactory());
            ISerializationService ss2 = builder2.Build();

            //make sure ss2 cached class definition of Child
            ss2.ToData(new Child("ubeyd"));

            //serialized parent from ss1
            Parent parent = new Parent(new Child("ubeyd"));
            IData  data   = ss1.ToData(parent);

            // cached class definition of Child and the class definition from data coming from ss1 should be compatible
            Assert.AreEqual(parent, ss2.ToObject <Parent>(data));
        }