Expression.Call Method (MethodInfo, Expression)
[ This article is for Windows Phone 8 developers. If you’re developing for Windows 10, see the latest documentation. ]
Creates a MethodCallExpression that represents a call to a static (Shared in Visual Basic) method that takes one argument.
Assembly: System.Core (in System.Core.dll)
Parameters
- method
- Type: System.Reflection.MethodInfo
A MethodInfo to set the Method property equal to.
- arg0
- Type: System.Linq.Expressions.Expression
The Expression that represents the first argument.
Return Value
Type: System.Linq.Expressions.MethodCallExpressionA MethodCallExpression that has the NodeType property equal to Call and the Object and Method properties set to the specified values.
| Exception | Condition |
|---|---|
| ArgumentNullException | method is null. |
The following example demonstrates how to create an expression that calls a static (Shared in Visual Basic) method that takes one argument.
// Add the following directive to your file: // using System.Linq.Expressions; public class SampleClass { public static int Increment(int arg1) { return arg1 + 1; } } static public void TestCall(System.Windows.Controls.TextBlock outputBlock) { //This expression represents a call to an instance method with one argument. Expression callExpr = Expression.Call( typeof(SampleClass).GetMethod("Increment"), Expression.Constant(2) ); // Print out the expression. outputBlock.Text += callExpr.ToString() + "\n"; // The following statement first creates an expression tree, // then compiles it, and then executes it. outputBlock.Text += Expression.Lambda<Func<int>>(callExpr).Compile()() + "\n"; // This code example produces the following output: // // Increment(2) // 3 }
Show: