#c# #expression
#c# #выражение
Вопрос:
все, как я могу имитировать ToString()
метод с помощью выражения? Например:
public class test
{
public string id{get;set;}
}
ParameterExpression parameter1 = Expression.Parameter(typeof(class), "a");
MemberExpression member1 = Expression.PropertyOrField(parameter1, "id");
MethodCallExpression call1 = Expression.Call(typeof(int).GetMethod("ToString"), member1);
Console.WriteLine(call1);
Но система сообщает об исключении AmbiguousMatchException в
Вызов methodcallexpression1 = Выражение.Вызовите(typeof(int).GetMethod(«toString»), member1);
Ответ №1:
Существует 4 варианта Int32.Метод toString() (без параметра, с параметром IFormatProvider, с параметром string format и т.д.). Вам нужно явно указать, какой из них вам нужен, указав тип [] входных аргументов (я предполагаю, что вам нужен метод без параметров):
MethodCallExpression call1 = Expression.Call(typeof(int).GetMethod("ToString", Type.EmptyTypes), member1);