示例#1
0
        public void StructTest()
        {
            var getter = ModelAccess <MyStruct> .GetGetter(x => x.PropTwo).GetDelegate <int>();

            var setter = ModelAccess <MyStruct> .GetSetter(x => x.PropTwo).GetDelegate <int>();

            MyStruct instance = new MyStruct();

            setter(ref instance, 3);
            var value = getter(ref instance);

            Assert.Equal(3, value);
        }
示例#2
0
        public void GetGettersByName()
        {
            var names = ModelAccess <GrandChildClass>
                        .Getters
                        .Keys
                        .ToList();

            Assert.Equal(31, names.Count);

            foreach (var name in names)
            {
                var getter = ModelAccess <GrandChildClass> .GetGetter(name);

                Assert.NotNull(getter);
            }
        }
示例#3
0
        public void GetGettersByName_CaseInsensitive()
        {
            var names = ModelAccess <GrandChildClass>
                        .Getters
                        .Keys
                        .Select(x => x.ToUpperInvariant())
                        .ToList();

            Assert.Equal(31, names.Count);

            foreach (var name in names)
            {
                var getter = ModelAccess <GrandChildClass> .GetGetter(name);

                Assert.NotNull(getter);
            }
        }
示例#4
0
        public void GetSetterByExpression()
        {
            var setter = ModelAccess <GrandChildClass> .GetSetter(x => x.Child_PublicField);

            Assert.NotNull(setter);
        }