示例#1
0
        public void TestHasTuplesNaked()
        {
            var model = RuntimeTypeModel.Create();

            model.AutoCompile = false;

            var obj = new BasicTuple(123, "abc");

            CheckBytes(model, obj, "08 7B 12 03 61 62 63", "runtime");
            var clone = (BasicTuple)model.DeepClone(obj);

            Assert.Equal(123, clone.Foo);   //, "runtime");
            Assert.Equal("abc", clone.Bar); //, "runtime");

            model.Compile("TestHasTuplesNaked", "TestHasTuplesNaked.dll");
            PEVerify.AssertValid("TestHasTuplesNaked.dll");

            model.CompileInPlace();
            CheckBytes(model, obj, "08 7B 12 03 61 62 63", "CompileInPlace");
            clone = (BasicTuple)model.DeepClone(obj);
            Assert.Equal(123, clone.Foo);   //, "CompileInPlace");
            Assert.Equal("abc", clone.Bar); //, "CompileInPlace");

            var compiled = model.Compile();

            CheckBytes(compiled, obj, "08 7B 12 03 61 62 63", "Compile");
            clone = (BasicTuple)compiled.DeepClone(obj);
            Assert.Equal(123, clone.Foo);   //, "Compile");
            Assert.Equal("abc", clone.Bar); //, "Compile");
        }
示例#2
0
        public void TestHasTuplesNaked()
        {
            var model = RuntimeTypeModel.Create();
            model.AutoCompile = false;

            var obj = new BasicTuple(123, "abc");

            CheckBytes(model, obj, "08 7B 12 03 61 62 63", "runtime");
            var clone = (BasicTuple)model.DeepClone(obj);
            Assert.AreEqual(123, clone.Foo, "runtime");
            Assert.AreEqual("abc", clone.Bar, "runtime");

            model.Compile("TestHasTuplesNaked", "TestHasTuplesNaked.dll");
            PEVerify.AssertValid("TestHasTuplesNaked.dll");

            model.CompileInPlace();
            CheckBytes(model, obj, "08 7B 12 03 61 62 63", "CompileInPlace");
            clone = (BasicTuple)model.DeepClone(obj);
            Assert.AreEqual(123, clone.Foo, "CompileInPlace");
            Assert.AreEqual("abc", clone.Bar, "CompileInPlace");

            var compiled = model.Compile();
            CheckBytes(compiled, obj, "08 7B 12 03 61 62 63", "Compile");
            clone = (BasicTuple)compiled.DeepClone(obj);
            Assert.AreEqual(123, clone.Foo, "Compile");
            Assert.AreEqual("abc", clone.Bar, "Compile");
        }