全部
如何通过表达式模拟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);
但是系统报告
处是AmbiguousMatchExceptionMethodCallExpression调用1 = Expression.Call(typeof(int).GetMethod(“ ToString”),member1);
答案 0 :(得分:3)
Int32.ToString()方法有4个变体(不带参数,带IFormatProvider参数,带字符串格式参数等)。 您需要通过提供Type []输入参数来明确指定所需的输入(我假设您需要不带参数的输入):
MethodCallExpression call1 = Expression.Call(typeof(int).GetMethod("ToString", Type.EmptyTypes), member1);