title: Incorrect number of parameters supplied for lambda declaration
body: <p>Please have a look at my code: I'm trying to create <code>myCar</code> with an Expression Tree.</p>
  
  <p>I get an <code>ArgumentException</code> on this line <code>var m = Expression.Lambda&lt;Func&lt;Engine,...</code>
  The message is <em>Incorrect number of parameters supplied for lambda declaration</em>.</p>
  
  <pre><code>public class Engine
  {
      public string Name { get; private set; }
      public Engine(string name)
      {
          Name = name;
      }
  }
  public class Car
  {
      private readonly Engine engine;
      public Car(Engine engine)
      {
          this.engine = engine;
      }
      public string GetEngineName(){return engine.Name;}
  }
  class Program
  {
      static void Main(string[] args)
      {
          var ci = typeof (Car).GetConstructor(new[] {typeof (Engine)});
  
          var engine = Expression.Parameter(typeof (Engine));
  
          var m = Expression.Lambda&lt;Func&lt;Engine,Car&gt;&gt;(Expression.New(ci, engine))
                            .Compile();
  
          var myCar = m(new Engine("TDI 2.0"));
          var s = myCar.GetEngineName();
      }
  }
  </code></pre>
  
  <p>I can't figure out what's wrong and where I did the error. Thanks in advance.</p>