MethodInfo of Fun c ? - PullRequest
       5

MethodInfo of Fun c ?

0 голосов
/ 05 мая 2020

У меня есть Delegate, который указывает на Func<T1, TResult>, скомпилированный из LambdaExpression.

Когда я использую delegate.GetMethodInfo().GetParameters(), я вижу 2 параметра вместо 1!

Итак в часах отладчика MethodInfo выглядит так:

{TResult lambda_method(System.Runtime.CompilerServices.Closure, System.String)}

Почему здесь 2 параметра? Как получить MethodInfo с правильным количеством параметров?

Минимальный код воспроизведения:

var param = Expression.Parameter(typeof(string), "x");
var lambda = Expression.Lambda(param, param);
var delegate = lambda.Compile();

Debug.Assert(delegate.GetMethodInfo().GetParameters().Length == 1, "params count should be 1");
...