Действие рабочего процесса — сохраните имя действия рабочего процесса в переменной с помощью действия «Назначить».

Мне на самом деле стыдно задавать этот вопрос, но вот.

В действии рабочего процесса, как мне получить имя текущего действия? Например, если у меня есть переменная с именем «Имя», как я могу установить ее в имя действия. Я пытался:

System.Reflection.MethodBase.GetCurrentMethod().Name

но он возвращает: "лямбда_метод"

Мои навыки работы с Google сегодня не удались.

Вот обновление, при отладке рабочего процесса Activity окна часов говорят, что «это» действительно, позволяет мне видеть текущее имя действия. Но когда я пытаюсь использовать «это» внутри блока назначения в действии рабочего процесса, возникает ошибка компиляции: ошибка компилятора при обработке выражения «this.activity.displayName». «это» не объявлено. Он может быть недоступен из-за его уровня защиты.


person user959729    schedule 18.01.2012    source источник
comment
Я ищу имя действия внутри действия рабочего процесса.   -  person user959729    schedule 19.01.2012
comment
Я пытаюсь установить переменную для текущего имени действия, используя Assign   -  person user959729    schedule 19.01.2012


Ответы (2)


Используйте this.activity.displayName (который работает в моем Immediate Window при отладке рабочего процесса)

person Jesse Smith    schedule 18.01.2012
comment
Конечно, это может быть из контекста рабочего процесса, а не из контекста действия. YMMV - person Jesse Smith; 19.01.2012
comment
Обнаружены ошибки компилятора при обработке выражения this.activity.displayName. «это» не объявлено. Он может быть недоступен из-за его уровня защиты. Я пытаюсь установить переменную для текущего имени действия, используя Assign - person user959729; 19.01.2012
comment
Попробуйте отладить действие (щелкните правой кнопкой мыши и установите точку останова) и просмотрите свои локальные переменные в поисках строки с тем же именем, что и у вашего действия. - person Jesse Smith; 19.01.2012
comment
Интересно... Мои локальные переменные и мои окна просмотра показывают, что "это" действительно. Но в моем блоке назначения это не позволит мне скомпилировать. Что-то неладное - person user959729; 19.01.2012
comment
@ user959729: Причина может заключаться в том, что код в блоке назначения является выражением VB.NET. Попробуйте Me вместо this. - person Daniel Hilgarth; 25.07.2012

Будет ли это работать?

System.Reflection.MethodBase.GetCurrentMethod().Name.ToString()
person Brian Snow    schedule 18.01.2012
comment
Он возвращает то же самое: lambda_method. Я нахожусь внутри рабочего процесса... не в коде С#. - person user959729; 19.01.2012