TypeArgumentException в лямбда-выражении silverlight - PullRequest
0 голосов
/ 27 июля 2011

Я определил следующий метод

public static Expression<Func<T,dynamic>> CreateExpression(string propName)
{
ParameterExpression param = Expression.Parameter(typeof(T));

MemberExpression aggregator = Expression.PropertyOrField(parameter,propName);

return Expression.Lambda<Func<T,dynamic>>(aggregator,param);
}

Код компилируется нормально, но во время выполнения последняя строка выдает аргумент аргумента, утверждающий, что «Выражение типа« System.Int32 »нельзя использовать для возвращаемого типа« Система ».Object '

Я что-то упустил?

Заранее спасибо

1 Ответ

1 голос
/ 27 июля 2011

Использование Expression.Convert .Это добавит преобразование бокса, необходимое для превращения базового типа Int32 (или любого базового типа, на который вы ссылаетесь) в объект.

...