Могут ли рабочие процессы 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 - но в Интернете есть множество примеров этого:)