【发布时间】:2011-01-21 12:31:47
【问题描述】:
请查看我的代码:我正在尝试使用表达式树创建 myCar。
我在这条线上得到一个ArgumentException var m = Expression.Lambda<Func<Engine,...
消息是为 lambda 声明提供的参数数量不正确。
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<Func<Engine,Car>>(Expression.New(ci, engine))
.Compile();
var myCar = m(new Engine("TDI 2.0"));
var s = myCar.GetEngineName();
}
}
我不知道哪里出了问题以及哪里出错了。提前致谢。
【问题讨论】:
标签: c# .net lambda expression-trees