Как настроить активность в повторно размещенном Workflow 4 Designer? - PullRequest
1 голос
/ 26 октября 2010

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

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

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

Ответы [ 2 ]

2 голосов
/ 26 октября 2010

Конечно, просто создайте действие, чтобы выполнить работу, и добавьте свойства 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 голосов
/ 28 октября 2010

Дополнительная информация, на веб-сайте MSDN есть два очень полезных видеоуроки: Разработка пользовательских действий и Дизайнеры действий , и я предполагаю, что выступающий - тот же Морис, что и принятый ответчик :)

...