public static void Test_Can_Serialize_Then_Deserialize_Registered_Type()
		{
			//arrange
			TestWithNestedSerializableType typeToTest = new TestWithNestedSerializableType();
			typeToTest.IntField = 5;
			typeToTest.SomeClassField = new TestWithNestedSerializableType.SomeClass() { SomeField = 8 };
			ProtobufnetRegistry registry = new ProtobufnetRegistry();
			typeToTest.ShouldntSerialize = 50643;

			//act
			registry.Register(typeof(TestWithNestedSerializableType));

			//Serialize it
			MemoryStream ms = new MemoryStream();

			ProtoBuf.Serializer.Serialize(ms, typeToTest);
			ms.Position = 0; //need to reset the stream

			TestWithNestedSerializableType deserializedType = ProtoBuf.Serializer.Deserialize<TestWithNestedSerializableType>(ms);

			//assert
			Assert.NotNull(deserializedType);
			Assert.AreEqual(typeToTest.IntField, deserializedType.IntField);
			Assert.NotNull(deserializedType.SomeClassField);
			Assert.AreEqual(typeToTest.SomeClassField.SomeField, deserializedType.SomeClassField.SomeField);
			Assert.AreNotEqual(typeToTest.ShouldntSerialize, deserializedType.ShouldntSerialize);
		}
        public static void Test_Can_Serialize_Then_Deserialize_Registered_Type()
        {
            //arrange
            TestWithNestedSerializableType typeToTest = new TestWithNestedSerializableType();

            typeToTest.IntField       = 5;
            typeToTest.SomeClassField = new TestWithNestedSerializableType.SomeClass()
            {
                SomeField = 8
            };
            ProtobufnetRegistry registry = new ProtobufnetRegistry();

            typeToTest.ShouldntSerialize = 50643;

            //act
            registry.Register(typeof(TestWithNestedSerializableType));

            //Serialize it
            MemoryStream ms = new MemoryStream();

            ProtoBuf.Serializer.Serialize(ms, typeToTest);
            ms.Position = 0;             //need to reset the stream

            TestWithNestedSerializableType deserializedType = ProtoBuf.Serializer.Deserialize <TestWithNestedSerializableType>(ms);

            //assert
            Assert.NotNull(deserializedType);
            Assert.AreEqual(typeToTest.IntField, deserializedType.IntField);
            Assert.NotNull(deserializedType.SomeClassField);
            Assert.AreEqual(typeToTest.SomeClassField.SomeField, deserializedType.SomeClassField.SomeField);
            Assert.AreNotEqual(typeToTest.ShouldntSerialize, deserializedType.ShouldntSerialize);
        }