Quel est le meilleur moyen d'appeler une méthode d'instance dans un arbre d'expression? Ma solution actuelle est quelque chose comme ça pour une méthode d'interface "object GetRowValue (rowIndex)" de l'interface IColumn.Meilleure façon d'appeler une méthode d'instance dans les arbres d'expression?
public static Expression CreateGetRowValueExpression(
IColumn column,
ParameterExpression rowIndex)
{
MethodInfo methodInfo = column.GetType().GetMethod(
"GetRowValue",
BindingFlags.Instance | BindingFlags.Public,
null,
CallingConventions.Any,
new[] { typeof(int) },
null);
var instance = Expression.Constant(column);
return Expression.Call(instance, methodInfo, rowIndex);
}
Y at-il un moyen plus rapide? Est-il possible de créer l'Expression sans avoir à passer le nom de la méthode sous forme de chaîne (mauvais pour le refactoring)?