1

В этом article показано, как создать пользовательскую активность в повторном дизайнере Workflow (с Workflow Foundation 4). В этом примере создается MyDelayActivity путем реализации интерфейса IActivityTemplateFactory и указания значения по умолчанию для входов Delay.Как настроить активность в реорганизованном Workflow 4 Designer?

Однако, возможно ли изменить входы активности? Например, предположим, что я хочу добавить новую операцию StartProcess, которая берет строку и запускает процесс, указанный строкой. Я могу реализовать это с помощью собственных действий, добавив активность InvokeMethod, указав Process.Start как метод и коллекцию, содержащую строку в качестве параметра.

Могу ли я упростить все это, просто имея коробку StartProcess с только строковым вводом?

ответ

2

Конечно, просто создайте действие для выполнения работы и добавьте свойства InArgument, чтобы предоставить нужные данные. Когда вы отбрасываете активность на поверхности дизайна, вы можете использовать лист свойств для установки аргументов. В качестве альтернативы вы можете создать конструктор действий, чтобы сделать то же самое на поверхности дизайна, как, например, деятельность WriteLine.

Пример:

public sealed class MyWriteLine : CodeActivity 
{ 
    public InArgument<string> Text { get; set; } 

    protected override void Execute(CodeActivityContext context) 
    { 
     string text = context.GetValue(this.Text); 
     Console.WriteLine(text); 
    } 
} 
+0

hmmm .. не могли бы вы дать больше подсказок о том, где я должен добавить InArgument? –

+0

Спасибо! еще один вопрос. Теперь 'MyWriteLine' появляется в GUI-дизайнере как действие без ввода. Чтобы изменить текст, пользователь должен использовать лист свойств. Возможно ли, чтобы представление GUI имело вход «Text», как обычный VS WriteLine? –

+0

Да. Добавьте ActivityDesigner. Это управляемый WPF-контроль, используемый WorkflowDesigner для рендеринга вашей активности. Вы можете включать элементы управления, такие как TextBox, и привязывать их к своей активности InArguments. – Maurice

0

Дополнительная информация, есть две очень полезные видео-уроки на сайте MSDN: Developing custom activities и Activity designers, и я полагаю, динамик такой же Maurice как принято :) отвечающего