public virtual Formula Visit(ReflectivePropertyFormula formula) { Visit((PropertyFormula)formula); return visitor.Visit(formula); }
public Formula Visit(ReflectivePropertyFormula formula) { return formula; }
public static void EvalPropertyInfoSetValue_object_object_objects(MethodCallExpression exp, ExpressionToFormulaState state) { exp.Object.ConvertTo(state.InlineValueState); var pi = (PropertyInfo)state.InlineValueState.Result; var setter = pi.GetSetMethod(true); var instance = default(Formula); if (!setter.IsStatic) { EvalExpression(exp.Arguments[0], state); instance = state.CurrentBlock.Formulas.Pop(); } var left = new ReflectivePropertyFormula(instance, pi); EvalExpression(exp.Arguments[1], state); var right = state.CurrentBlock.Formulas.Pop(); state.CurrentBlock.Formulas.Push(new AssignFormula() { Left = left, Right = right }); }