Могут ли рабочие процессы Windows быть написаны на C# вместо XAML?

Мы используем Windows Workflow Foundation для наших рабочих процессов. Файлы XAMLX, содержащие определения рабочих процессов, очень хрупкие (они часто оказываются недоступными без видимой причины), и мы не можем работать с ними параллельно, потому что мы не сможем объединить эти изменения (лежащий в основе XAML нет человек читаемый). Я ищу способы облегчить работу с XAML через встроенный редактор Visual Studio. Можно ли определить рабочие процессы Windows Workflow Foundation в C#?

Эта статья в разделе "Структура рабочего процесса" предполагает, что это возможно, но не дает полного примера.

Окончательное обновление Проверьте ответ ниже для рабочего образца рабочего процесса C# только для кода и конфигурации для размещения его через WCF.

2 ответа

Решение

Я собрал воедино информацию из разных учебных пособий и придумал пример проекта, демонстрирующего рабочий процесс Windows Workflow Foundation, созданный с использованием только кода и размещенный в качестве службы WCF.

Абсолютно - просто составьте свою деятельность точно так же, как в Xaml. Например, следующий код создаст последовательность, содержащую два действия WriteLine.

// Create a sequence containing 2 WriteLine activities.
var sequence = new Sequence();

sequence.Activities.Add(new WriteLine()
{
    Text = "Hello!"
});

sequence.Activities.Add(new WriteLine()
{
    Text = "Goodbye!"
});

// Now execute the sequence.
var wfApplication = new WorkflowApplication(sequence);
wfApplication.Run();

Если вы хотите создавать пользовательские действия, вам нужно наследовать от CodeActivity или NativeActivity - но в Интернете есть множество примеров этого:)

Другие вопросы по тегам