Проблема с захватом переменной закрытия в выражении c #

У меня есть функция, которая создает делегат, используя деревья выражений. В этом выражении я использую переменную, захваченную из нескольких параметров, переданных в функцию. Фактическое дерево выражений довольно большое, например:

Delegate GenerateFunction(T current, IList parents) {
    var currentExpr = Expression.Parameter(typeof(T), "current");
    var parentsExpr = Expression.Parameter(parents.getType(), "parents");
    var parameters = new List();

    ....

    return Expression.Lambda(Expression.Block(new List { parentsExpr, currentExpr }, ....), parameters.ToArray()).Compile();
}

Затем я вызываю этот метод из другого метода, прежде чем передать эту функцию другой используемой функции. Как только этовсе сделано, я хочу получить доступ к содержанию родителей, которое обновляется в дереве выражений.

Кажется, что все компилируется, и мое выражение выглядит хорошо, но когда я запускаю его, я появляюсь (хотя я могу 'на самом деле) получить нулевые ссылочные исключения при доступе к родительской переменной (внутри выражения / замыкания).

Я предполагаю, что я'хотел бы знать, если яя делаю что-то не так или это возможно, а также советы для понимания того, чтопродолжается Я неКажется, я не могу найти какие-либо локальные переменные (?) внутри метода, поэтому яИнтересно, онивы вообще в плену?

Спасибо Марк

Ответы на вопрос(2)

Ваш ответ на вопрос