我正在反思一个类(在所述类的单元测试中),以确保其成员具有所有必需的属性。为此,我构建了一些帮助者,以Expression
为参数。我会对它进行一些检查,并根据它的Expression
类型采取稍微不同的操作,但它基本相同。
现在,我的问题我有几个同名的方法(但签名不同),以下代码抛出AmbiguousMatchException
:
// TOnType is a type argument for the type where the method is declared
// mce is the MethodCallExpression
var m = typeof(TOnType).GetMethod(mce.Method.Name);
现在,如果我可以将Type[]
的数组与此方法的参数类型一起添加为.GetMethod()
的第二个参数,则问题将得到解决。
但是如何找到我需要的Type[]
数组?
我已将Expression<Func<...>>
投射到Expression
,然后投放到MethodCallExpression
,并且在此方法中<...>
的内容未知。
答案 0 :(得分:1)
为什么使用反射来查找MethodInfo
?您已经从MethodCallExpression
...
这样做:
var m = mce.Method;