static void Main(string[] args) { var cat = new Cat(); Expression> expr = c => c.CatMethod(42, "MyTested ASP.NET"); var myClass = typeof(Cat); var numberConstant = Expression.Constant(42); var textConstant = Expression.Constant("MyTested ASP.NET"); var parameterExpression = Expression.Parameter(myClass, "c"); var methodInfo = myClass.GetMethod(nameof(Cat.CatMethod)); var methodCallExpression = Expression.Call(parameterExpression, methodInfo, numberConstant, textConstant); var lambdaExpression = Expression.Lambda>(methodCallExpression, parameterExpression); var function = lambdaExpression.Compile(); Console.WriteLine(function(cat)); }