我试图从 Linq.Expression 树中调用 String.Format 。这是一个简单的例子:
var format = Expression.Constant("({0}) {1}");
var company = Expression.Property(input, membernames.First());
var project = Expression.Property(input, membernames.Last());
var args = new Expression[] {format, company, project};
var invoke = Expression.Call(method,args);
然而,问题是 String.Format 具有以下签名:
String.Format(string format, params object[] args)
我正在尝试传递表达式 []。
现在我可以通过创建一个数组的所有麻烦,用我的表达式的结果填充它,但我真正想要的结果是这样的:
String.Format("({0}) {1}", input.foo, input.bar)
如何通过 Linq 表达式调用 params 函数?