Ejemplo n.º 1
0
        public void EmitFieldGetterSetterEmits()
        {
            var getter1 = ReflectionUtilities.EmitFieldGetter <Class1, int>("Field1");
            var getter2 = ReflectionUtilities.EmitFieldGetter <Class1, int>("Field2");
            var c       = new Class1();

            Assert.AreEqual(33, getter1(c));
            Assert.AreEqual(66, getter2(c));

            var setter2 = ReflectionUtilities.EmitFieldSetter <Class1, int>("Field2");

            setter2(c, 99);
            Assert.AreEqual(99, getter2(c));

            // works on readonly fields!
            var(getter3, setter3) = ReflectionUtilities.EmitFieldGetterAndSetter <Class1, int>("Field3");
            Assert.AreEqual(22, getter3(c));
            setter3(c, 44);
            Assert.AreEqual(44, getter3(c));
        }
Ejemplo n.º 2
0
 public SqlInspectionUtilities()
 {
     (_getSqlText, _setSqlText) = ReflectionUtilities.EmitFieldGetterAndSetter <Sql, string>("_sql");
     _getSqlRhs   = ReflectionUtilities.EmitFieldGetter <Sql, Sql>("_rhs");
     _setSqlFinal = ReflectionUtilities.EmitFieldSetter <Sql, string>("_sqlFinal");
 }