我試圖從一個Linq.Expression樹調用的String.Format。這裏有一個簡單的例子:調用(params對象[])[]
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函數?