+
+ public override Expression CreateExpressionTree (EmitContext ec)
+ {
+ //
+ // Remove IL method implementation when expression tree is requested
+ //
+ method.Parent.PartialContainer.RemoveMethod (method);
+
+ Expression args = parameters.CreateExpressionTree (ec, loc);
+ Expression expr = Block.CreateExpressionTree (ec);
+ if (expr == null)
+ return null;
+
+ ArrayList arguments = new ArrayList (2);
+ arguments.Add (new Argument (expr));
+ arguments.Add (new Argument (args));
+ return CreateExpressionFactoryCall ("Lambda",
+ new TypeArguments (loc, new TypeExpression (type, loc)),
+ arguments);
+ }