コード例 #1
0
ファイル: SO9144967.cs プロジェクト: GeorchW/protobuf-net
        public void Execute()
        {
            var obj = new HasBlobs {Foo = new byte[] {7, 8}, Bar = new byte[] {8, 9}};

            var model = RuntimeTypeModel.Create();
            model.AutoCompile = false;


            var clone = (HasBlobs)model.DeepClone(obj);
            Assert.IsTrue(clone.Foo.SequenceEqual(new byte[] { 1, 2, 3, 7, 8}), "Runtime Foo");
            Assert.IsTrue(clone.Bar.SequenceEqual(new byte[] { 8, 9 }), "Runtime Bar");
            model.CompileInPlace();
            clone = (HasBlobs)model.DeepClone(obj);
            Assert.IsTrue(clone.Foo.SequenceEqual(new byte[] { 1, 2, 3, 7, 8 }), "CompileInPlace Foo");
            Assert.IsTrue(clone.Bar.SequenceEqual(new byte[] { 8, 9 }), "CompileInPlace Bar");
            clone = (HasBlobs)model.Compile().DeepClone(obj);
            Assert.IsTrue(clone.Foo.SequenceEqual(new byte[] { 1, 2, 3, 7, 8 }), "Compile Foo");
            Assert.IsTrue(clone.Bar.SequenceEqual(new byte[] { 8, 9 }), "Compile Bar");
        }
コード例 #2
0
        public void Execute()
        {
            var obj = new HasBlobs {
                Foo = new byte[] { 7, 8 }, Bar = new byte[] { 8, 9 }
            };

            var model = RuntimeTypeModel.Create();

            model.AutoCompile = false;


            var clone = (HasBlobs)model.DeepClone(obj);

            Assert.IsTrue(clone.Foo.SequenceEqual(new byte[] { 1, 2, 3, 7, 8 }), "Runtime Foo");
            Assert.IsTrue(clone.Bar.SequenceEqual(new byte[] { 8, 9 }), "Runtime Bar");
            model.CompileInPlace();
            clone = (HasBlobs)model.DeepClone(obj);
            Assert.IsTrue(clone.Foo.SequenceEqual(new byte[] { 1, 2, 3, 7, 8 }), "CompileInPlace Foo");
            Assert.IsTrue(clone.Bar.SequenceEqual(new byte[] { 8, 9 }), "CompileInPlace Bar");
            clone = (HasBlobs)model.Compile().DeepClone(obj);
            Assert.IsTrue(clone.Foo.SequenceEqual(new byte[] { 1, 2, 3, 7, 8 }), "Compile Foo");
            Assert.IsTrue(clone.Bar.SequenceEqual(new byte[] { 8, 9 }), "Compile Bar");
        }