Windows 工作流可以用 C# 而不是 XAML 编写吗?
Can Windows Workflows be written in C# instead of XAML?
我们正在为我们的工作流使用 Windows Workflow Foundation。包含工作流定义的 XAMLX 文件非常脆弱(它们通常无缘无故最终无法打开)并且我们无法并行处理它们,因为我们无法合并这些更改(底层 XAML 是人类可读的)。我正在寻找方法来减轻必须通过内置 Visual Studio 编辑器使用 XAML 的痛苦。是否可以在 C# 中定义 Windows Workflow Foundation 工作流?
这篇文章 article 在 "Workflow Structure" 部分表明这是可能的,但没有给出完整的例子。
最终更新
检查下面的答案,了解纯代码 C# 工作流的工作示例,并配置为通过 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 - 但网上有很多这样的例子:)
我汇总了来自不同教程的信息,并提出了一个 sample project 演示 Windows Workflow Foundation 工作流,通过纯代码编写并托管为 WCF 服务
我们正在为我们的工作流使用 Windows Workflow Foundation。包含工作流定义的 XAMLX 文件非常脆弱(它们通常无缘无故最终无法打开)并且我们无法并行处理它们,因为我们无法合并这些更改(底层 XAML 是人类可读的)。我正在寻找方法来减轻必须通过内置 Visual Studio 编辑器使用 XAML 的痛苦。是否可以在 C# 中定义 Windows Workflow Foundation 工作流?
这篇文章 article 在 "Workflow Structure" 部分表明这是可能的,但没有给出完整的例子。
最终更新 检查下面的答案,了解纯代码 C# 工作流的工作示例,并配置为通过 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 - 但网上有很多这样的例子:)
我汇总了来自不同教程的信息,并提出了一个 sample project 演示 Windows Workflow Foundation 工作流,通过纯代码编写并托管为 WCF 服务