Nombre incorrect de parameters fournis pour la déclaration lambda

Veuillez regarder mon code: j’essaie de créer myCar avec un arbre d’expression.

J’ai une ArgumentException sur cette ligne. var m = Expression.Lambda<Func<Engine,... Le message indique un nombre incorrect de parameters fournis pour la déclaration lambda .

 public class Engine { public ssortingng Name { get; private set; } public Engine(ssortingng name) { Name = name; } } public class Car { private readonly Engine engine; public Car(Engine engine) { this.engine = engine; } public ssortingng GetEngineName(){return engine.Name;} } class Program { static void Main(ssortingng[] args) { var ci = typeof (Car).GetConstructor(new[] {typeof (Engine)}); var engine = Expression.Parameter(typeof (Engine)); var m = Expression.Lambda<Func>(Expression.New(ci, engine)) .Comstack(); var myCar = m(new Engine("TDI 2.0")); var s = myCar.GetEngineName(); } } 

Je ne peux pas comprendre ce qui ne va pas et où j’ai commis l’erreur. Merci d’avance.

Vous devez spécifier le moteur dans la partie ‘params ParameterExpression [] parameters’ de Expression.Lambda.

 var m = Expression.Lambda>(Expression.New(ci, engine), engine)