Я создаю динамическое выражение, которое будет упорядочивать элементы в списке по некоторому правилу (лямбда-exp.). Это код:Динамически созданные выражения
Expression<Func<String, String>> exp = o => o;
MethodCallExpression orderByExp = Expression.Call(typeof(Enumerable), "OrderBy",
new Type[] { typeof(String), exp.Body.Type }, Expression.Parameter(typeof(IEnumerable<String>), "list"), exp);
Теперь я хочу, чтобы выполнить ранее созданное выражение конкретных данных для сортировки, но это не удается из-за каких-то странных исключений, таких как «лямбда параметр не входят в комплект» или «выражение Аргумент не является действительным ».
var data = new String[] { "asdasdasd", "asdads", "123", "xcvxcvs", "ASDSD" };
// one of attempts: doesn't work
var result = data.AsQueryable().Provider.CreateQuery<String>(orderByExp);
Может ли кто-нибудь помочь мне в этом?
вся картина следующая: Я хочу созд съел некоторый запрос (такие правила, как order, где, может быть, еще) на некоторые данные, которых у меня сейчас нет. Но я знаю его тип. Этот запрос позже будет отправлен на некоторые веб-службы, у которых есть данные и будет запускать запрос на нем. – Kamarey
и забыл, это простой LINQ to Objects. – Kamarey
Хорошо, теперь я смущен - если вы отправляете запрос в веб-службу, это не похоже на LINQ to Objects. Что вы хотите сделать заказ - веб-сервис или локальный процесс? –