Передача лямбды к вторичному AppDomain как поток IL и сборка его назад использование DynamicMethod

Возможно, необходимо считать это:

http://neosmart.net/wiki/display/EBCD/Ubuntu и запускают от "Добавляющей Ubuntu до Windows Bootloader" часть.

Это работало на меня.

11
задан aoven 23 November 2009 в 15:42
поделиться

2 ответа

Вероятно, нет, потому что лямбда - это больше, чем просто выражение в исходном коде. лямбда-выражения также создают замыкания, которые захватывают / поднимают переменные в свои собственные скрытые классы. Программа модифицируется компилятором, поэтому везде, где вы используете эти переменные, вы фактически разговариваете с классом. Таким образом, вам придется передавать не только код лямбда-выражения, но и любые изменения закрывающих переменных с течением времени.

1
ответ дан 3 December 2019 в 12:05
поделиться

Я не совсем понял, в чем именно проблема, которую вы пытаетесь решить, но в прошлом я сделал компонент, который может ее решить.

По сути, его целью было создание Лямбда-выражение из строки . Он использует отдельный AppDomain для запуска компилятора CodeDOM. IL скомпилированного метода сериализуется в исходный AppDomain , а затем перестраивается в делегат с помощью DynamicMethod . Затем вызывается делегат и возвращается лямбда-выражение.

Я опубликовал полное объяснение его в моем блоге . Естественно, это открытый исходный код. Так что, если вам удастся его использовать, присылайте мне любые отзывы, которые считаете разумными.

2
ответ дан 3 December 2019 в 12:05
поделиться
Другие вопросы по тегам:

Похожие вопросы: