public void DecrementTest() { Expression <Func <int, int> > source = a => a + (a - 1) * (a + 5) * (a - 1); var result = new MyVisitor().VisitAndConvert(source, ""); Console.WriteLine(source + " " + source.Compile().Invoke(3)); Console.WriteLine(result + " " + result?.Compile().Invoke(3)); }
public void ParameterCollectionTest_String() { Expression <Func <string, string> > expression = a => a.ToUpper(); var values = new Dictionary <string, object> { ["a"] = "aaa" }; var result = new MyVisitor(values).Visit(expression) as LambdaExpression; Console.WriteLine(expression + " " + expression.Compile().Invoke("aaa")); Console.WriteLine(result + " " + result?.Compile().DynamicInvoke()); }
public void ParameterCollectionStringIntTest_Int() { Expression <Func <int, string, string> > expression = (a, b) => a.ToString().ToUpper() + b.ToLower(); var values = new Dictionary <string, object> { ["a"] = 12345, ["b"] = "STRING" }; var result = new MyVisitor(values).Visit(expression) as LambdaExpression; Console.WriteLine(expression + " " + expression.Compile().Invoke(12345, "STRING")); Console.WriteLine(result + " " + result?.Compile().DynamicInvoke()); }
public void ParameterCollectionStringTest_Int() { Expression <Func <string, string, string> > expression = (a, b) => String.Concat(a, b); var values = new Dictionary <string, object> { ["a"] = "str1", ["b"] = "str2" }; var result = new MyVisitor(values).Visit(expression) as LambdaExpression; Console.WriteLine(expression + " " + expression.Compile().Invoke("str1", "str2")); Console.WriteLine(result + " " + result?.Compile().DynamicInvoke()); }
public void ParameterCollectionIntTest_Int() { Expression <Func <int, int> > expression = a => a * 10 + a - a * 3; var values = new Dictionary <string, object> { ["a"] = 1 }; var result = new MyVisitor(values).Visit(expression) as LambdaExpression; Console.WriteLine(expression + " " + expression.Compile().Invoke(1)); Console.WriteLine(result + " " + result?.Compile().DynamicInvoke()); }