Рабочий процесс Windows (WF): передача выходных данных одного действия в качестве входных данных следующего в последовательности - PullRequest
4 голосов
/ 01 октября 2010

Я новичок в WF, так что простите, что может быть простым вопросом.

Я создаю несколько действий, которые будут выполняться последовательно и передавать данные по цепочке. Я знаю, что один из способов сделать это - установить переменную контекста в родительской последовательности из Activity A, а затем прочитать это значение в Activity B (таким образом, вывод A фактически является вводом B).

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

"If your activity returns a value, derive from CodeActivity<TResult> and return the value from the Execute method."

Какой смысл возвращать значение из Activity? Может ли это возвращаемое значение быть как-то прочитано следующей операцией в последовательности, без использования контекста общего родителя?

Ответы [ 2 ]

4 голосов
/ 01 октября 2010

Если вы используете CodeActivity, всегда существует свойство OutArument, которое называется result.Все, что вы возвращаете из функции Execute (), хранится там.Вам все еще нужно подключить результат к переменной или другому аргументу, чтобы использовать его в вашем рабочем процессе.

0 голосов
/ 11 сентября 2012

Вы можете заявить об этом следующим образом:

    <x:Property Name="ServiceData" Type="InOutArgument(x:string)" />

Вы можете установить это с результатом источника и ввода в действие назначения.

<my:SourceActivity Result="[ServiceData]"/>
<my:DestinationActivity Input="[ServiceData]"/>
...