Я размышляю над классом (в модульном тесте указанного класса), чтобы убедиться, что его члены имеют все необходимые атрибуты. Для этого я создал пару помощников, которые принимают 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
, и в этом методе содержимое <...>
не известно.