Можно ли получить тело метода (текст) действия? - PullRequest
4 голосов
/ 29 января 2011

У меня есть обстоятельство, когда я поставил в очередь несколько Action объектов, и у меня есть пул потоков, работающий через каждый Action.Однако, если приложение закрывается до того, как очередь пуста, я бы хотел записать, что осталось в очереди перед закрытием.

Возможно ли получить тело метода из объекта Action?Я вижу объект MethodBody из Action.Method.GetMethodBody(), но я не вижу способа вывести это как строку.

Есть какие-нибудь мысли, или я сумасшедший?

РЕДАКТИРОВАТЬ: Еще одна вещь;Я хотел бы также сохранить информацию о состоянии.То есть я хотел бы также сохранить значения любых переменных, используемых в Action.

Ответы [ 2 ]

4 голосов
/ 29 января 2011

Да, вы с ума сошли.

Выполняемый код был скомпилирован в IL, а затем JIT скомпилирован в машинный код.Текст действия давно ушел.

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

3 голосов
/ 29 января 2011

Полагаю, вы ищете не текстовое представление, а способ загрузки и сохранения деревьев выражений. Я тоже столкнулся с этой проблемой, и хотя я еще не использовал ее, это кажется многообещающим: сериализация дерева выражений .

...