System.Linq.Expressions.Expression.MakeDynamic C# (CSharp) Method

MakeDynamic() public static method

Creates a DynamicExpression that represents a dynamic operation bound by the provided CallSiteBinder.
public static MakeDynamic ( Type delegateType, CallSiteBinder binder, IEnumerable arguments ) : DynamicExpression
delegateType Type The type of the delegate used by the .
binder CallSiteBinder The runtime binder for the dynamic operation.
arguments IEnumerable The arguments to the dynamic operation.
return DynamicExpression
        public static DynamicExpression MakeDynamic(Type delegateType, CallSiteBinder binder, IEnumerable<Expression> arguments)
        {
            ContractUtils.RequiresNotNull(delegateType, nameof(delegateType));
            ContractUtils.RequiresNotNull(binder, nameof(binder));
            if (!delegateType.IsSubclassOf(typeof(MulticastDelegate))) throw Error.TypeMustBeDerivedFromSystemDelegate();

            var method = GetValidMethodForDynamic(delegateType);

            var args = arguments.ToReadOnly();
            ValidateArgumentTypes(method, ExpressionType.Dynamic, ref args, nameof(delegateType));

            return DynamicExpression.Make(method.GetReturnType(), delegateType, binder, args);
        }

Same methods

Expression::MakeDynamic ( CallSiteBinder binder, Type returnType, ReadOnlyCollection args ) : DynamicExpression
Expression::MakeDynamic ( Type delegateType, CallSiteBinder binder ) : DynamicExpression
Expression::MakeDynamic ( Type delegateType, CallSiteBinder binder, Expression arg0 ) : DynamicExpression
Expression::MakeDynamic ( Type delegateType, CallSiteBinder binder, Expression arg0, Expression arg1 ) : DynamicExpression
Expression::MakeDynamic ( Type delegateType, CallSiteBinder binder, Expression arg0, Expression arg1, Expression arg2 ) : DynamicExpression
Expression::MakeDynamic ( Type delegateType, CallSiteBinder binder, Expression arg0, Expression arg1, Expression arg2, Expression arg3 ) : DynamicExpression

Usage Example

Ejemplo n.º 1
0
 public DynamicExpression Update(IEnumerable <Expression> arguments)
 {
     if (arguments == this.Arguments)
     {
         return(this);
     }
     return(Expression.MakeDynamic(this.DelegateType, this.Binder, arguments));
 }
All Usage Examples Of System.Linq.Expressions.Expression::MakeDynamic
Expression