SqlSugar.ResolveExpress.GetMemberValue C# (CSharp) Method

GetMemberValue() private static method

private static GetMemberValue ( Expression &exp, MemberExpression me, object &dynInv ) : void
exp System.Linq.Expressions.Expression
me System.Linq.Expressions.MemberExpression
dynInv object
return void
        private static void GetMemberValue(ref Expression exp, MemberExpression me, ref object dynInv)
        {
            // var dynInv = Expression.Lambda(exp).Compile().DynamicInvoke();原始写法性能极慢,下面写法性能提高了几十倍
            // var dynInv= Expression.Lambda(me.Expression as ConstantExpression).Compile().DynamicInvoke();
            SetMemberValueToDynInv(ref exp, me, ref dynInv);
            if (dynInv == ExpErrorUniqueKey)//特殊情况走原始写法
            {
                dynInv = Expression.Lambda(exp).Compile().DynamicInvoke();
                if (dynInv != null && dynInv.GetType().IsClass)
                {
                    dynInv = Expression.Lambda(me).Compile().DynamicInvoke();
                }
            }
        }