以下のコードを修正してください。私がしたいのは、文字列式と文字列 [] パラメータをこのメソッドに渡し、式をコンパイルしてリスト内の個々の項目に適用することです。
public static IEnumerable<T> ForEach<T>(this IList<T> source, string expression, params object[] values)
{
if (source == null) throw new ArgumentNullException("source");
if (expression == null) throw new ArgumentNullException("expression");
var enumerableList = source.AsEnumerable<T>();
return (from T item in source
select (T) DynamicLambdaExpression.ParseLambda(item.GetType(), typeof(T), expression, values).Compile().DynamicInvoke(item));
}
そのままでは、式が適用されている可能性がありますが、各操作から返される型は、私が期待する型ではありません。実行すると例外が発生するため、わかりません。
<IfTrue Expression="it.UID = @0 + it.index.ToString(@1)" Parameters="000000 D6"/>
私が取得し続けるエラーメッセージは言う
System.Linq.Dynamic.ParseException が発生しました HResult=-2146233088 メッセージ = タイプ 'IProductDetail' の式が必要です ソース = 動的位置 = 0 StackTrace: System.Linq.Dynamic.ExpressionParser.Parse(Type resultType) で
そのため、コードを修正し、何が間違っていたかを説明していただければ幸いです。前もって感謝します。