#c# #linq
Вопрос:
У меня есть простое лямбда-выражение, которое отлично работает в качестве модульного теста, а также отлично работает, когда я копирую код в основной метод моего приложения. Однако, когда я запускаю тот же фрагмент кода в методе обратного вызова (через курьера JMS), я получаю вышеуказанную ошибку. Кто-нибудь сталкивался с этим?
Пример сбоя кода:
Expression<Func<JupiterDividend, bool>> expr = v => true;
expr.Compile(); // This is what fails
Комментарии:
1. (Отредактировано для правильного отображения кода.)
2. Не могли бы вы, возможно, показать часть дампа стека? Особенно биты вокруг «Выражения». Кроме того, знаете ли вы, делает ли JMS что-нибудь «веселое», например, создание типа «на лету», которое может выбросить гаечный ключ?
Ответ №1:
Обычно вы получаете такого рода ошибку, когда модульный конструктор уже «скомпилирован» или типовой конструктор уже «скомпилирован».
Я бы проверил, где происходят такие вещи. Кроме того, в этом случае может пригодиться трассировка стека.
Ответ №2:
Здесь есть сообщение об ошибке, хотя я не уверен, что это та же проблема, с которой вы столкнулись. По-видимому, это было исправлено в .NET 3.5 с пакетом обновления 1.