public void Get_Int32()
        {
            var obj = new AllPrimitive {
            };
            IGetAccessorFactory getAccessorFactory = EmitGetAccessorFactory.Instance;

            getAccessorFactory.TryCreate(typeof(AllPrimitive), nameof(AllPrimitive.Int32), out var get_Id);
            var id = get_Id(obj);

            Assert.Equal(id, obj.Int32);
        }
        public void Get_String()
        {
            var obj = new AllPrimitive {
                String = "SmartSql"
            };
            IGetAccessorFactory getAccessorFactory = EmitGetAccessorFactory.Instance;

            getAccessorFactory.TryCreate(typeof(AllPrimitive), nameof(AllPrimitive.String), out var get_String);
            var str = get_String(obj);

            Assert.Equal(str, obj.String);
        }
        public void Get_Nest1()
        {
            var obj = new
            {
                User = new
                {
                    Id = 1
                }
            };
            IGetAccessorFactory getAccessorFactory = EmitGetAccessorFactory.Instance;

            getAccessorFactory.TryCreate(obj.GetType(), "User.Id", out var getMethodImpl);
            var id = getMethodImpl(obj);

            Assert.Equal(id, obj.User.Id);
        }
        public void Get_List_Index()
        {
            var obj = new
            {
                User = new
                {
                    Items = new List <String>
                    {
                        "SmartSql"
                    }
                }
            };
            IGetAccessorFactory getAccessorFactory = EmitGetAccessorFactory.Instance;

            getAccessorFactory.TryCreate(obj.GetType(), "User.Items[0]", out var getMethodImpl);
            var id = getMethodImpl(obj);

            Assert.Equal(obj.User.Items[0], id);
        }
        public void Get_Dictionary_Index()
        {
            var obj = new
            {
                User = new
                {
                    Items = new Dictionary <int, int>
                    {
                        { 1, 1 }
                    }
                }
            };
            IGetAccessorFactory getAccessorFactory = EmitGetAccessorFactory.Instance;

            getAccessorFactory.TryCreate(obj.GetType(), "User.Items[1]", out var getMethodImpl);
            var id = getMethodImpl(obj);

            Assert.Equal(obj.User.Items[1], id);
        }