80 lines
2.4 KiB
C#
80 lines
2.4 KiB
C#
using System;
|
|
using System.Collections.ObjectModel;
|
|
using System.Reflection;
|
|
|
|
namespace System.Linq.Expressions
|
|
{
|
|
/// <summary>Represents calling a method.</summary>
|
|
// Token: 0x0200002B RID: 43
|
|
public sealed class MethodCallExpression : Expression
|
|
{
|
|
// Token: 0x06000233 RID: 563 RVA: 0x0000BCD8 File Offset: 0x00009ED8
|
|
internal MethodCallExpression(MethodInfo method, ReadOnlyCollection<Expression> arguments)
|
|
: base(ExpressionType.Call, method.ReturnType)
|
|
{
|
|
this.method = method;
|
|
this.arguments = arguments;
|
|
}
|
|
|
|
// Token: 0x06000234 RID: 564 RVA: 0x0000BCF8 File Offset: 0x00009EF8
|
|
internal MethodCallExpression(Expression obj, MethodInfo method, ReadOnlyCollection<Expression> arguments)
|
|
: base(ExpressionType.Call, method.ReturnType)
|
|
{
|
|
this.obj = obj;
|
|
this.method = method;
|
|
this.arguments = arguments;
|
|
}
|
|
|
|
/// <summary>Gets the receiving object of the method.</summary>
|
|
/// <returns>An <see cref="T:System.Linq.Expressions.Expression" /> that represents the receiving object of the method.</returns>
|
|
// Token: 0x1700002C RID: 44
|
|
// (get) Token: 0x06000235 RID: 565 RVA: 0x0000BD28 File Offset: 0x00009F28
|
|
public Expression Object
|
|
{
|
|
get
|
|
{
|
|
return this.obj;
|
|
}
|
|
}
|
|
|
|
/// <summary>Gets the called method.</summary>
|
|
/// <returns>The <see cref="T:System.Reflection.MethodInfo" /> that represents the called method.</returns>
|
|
// Token: 0x1700002D RID: 45
|
|
// (get) Token: 0x06000236 RID: 566 RVA: 0x0000BD30 File Offset: 0x00009F30
|
|
public MethodInfo Method
|
|
{
|
|
get
|
|
{
|
|
return this.method;
|
|
}
|
|
}
|
|
|
|
/// <summary>Gets the arguments to the called method.</summary>
|
|
/// <returns>A <see cref="T:System.Collections.ObjectModel.ReadOnlyCollection`1" /> of <see cref="T:System.Linq.Expressions.Expression" /> objects which represent the arguments to the called method.</returns>
|
|
// Token: 0x1700002E RID: 46
|
|
// (get) Token: 0x06000237 RID: 567 RVA: 0x0000BD38 File Offset: 0x00009F38
|
|
public ReadOnlyCollection<Expression> Arguments
|
|
{
|
|
get
|
|
{
|
|
return this.arguments;
|
|
}
|
|
}
|
|
|
|
// Token: 0x06000238 RID: 568 RVA: 0x0000BD40 File Offset: 0x00009F40
|
|
internal override void Emit(EmitContext ec)
|
|
{
|
|
ec.EmitCall(this.obj, this.arguments, this.method);
|
|
}
|
|
|
|
// Token: 0x040000B6 RID: 182
|
|
private Expression obj;
|
|
|
|
// Token: 0x040000B7 RID: 183
|
|
private MethodInfo method;
|
|
|
|
// Token: 0x040000B8 RID: 184
|
|
private ReadOnlyCollection<Expression> arguments;
|
|
}
|
|
}
|