Как получить доступ к глобальным переменным из пользовательского кода деятельности? - PullRequest
1 голос
/ 09 сентября 2011

Просто начинаем с WF4.

Возникла проблема с передачей некоторого текста из действия с собственным кодом (расположенного в середине последовательного рабочего процесса) в следующее (на основе xaml) действие в последовательности.

Вот краткий обзор: пользовательская операция с собственным кодом выполняет вызов БД и должна передать результат в стандартную операцию «SendReplyToRecive» (которая является последней операцией в этом рабочем процессе). Существует глобальная переменная "reportValue", определенная на уровне последовательности верхнего уровня, но я изо всех сил пытаюсь добраться до нее из этого пользовательского действия собственного кода.

Область разработки для этого рабочего процесса не предлагает Аргументы, только Переменные и Импорт, поэтому я даже не уверен, смогу ли я использовать OutArgument.

Как это сделать?

1 Ответ

2 голосов
/ 09 сентября 2011

Если ваша пользовательская NativeActivity определена так, чтобы возвращать значение, например так:

public sealed class MyCustomNativeActivity : NativeActivity<int>
{
    protected override void Execute(NativeActivityContext context)
    {
        context.SetValue<int>(base.Result, 10);
    }
}

Теперь вы можете установить возвращаемое значение в переменную, используя Result свойство через конструктор.

РЕДАКТИРОВАТЬ:

Проверьте этот образец изображения. В вашем MyCustomNativeActivity вам будет доступно свойство Result. Чтобы присвоить значение, возвращаемое переменной, просто инициализируйте эту переменную и поместите ее в поле Result.

С этого момента вы можете использовать эту переменную где угодно.

Обратите внимание, что в примере MyCustomNativeActivity возвращаемое значение равно Int32 , но может быть любого другого типа.

Ссылка на изображение здесь

Example Image

...