几年前(在 WF 存在之前),我从事自定义工作流引擎的工作。它的工作原理如下:设计一个工作流(称为定义),将特定类型的工作项与该定义相关联(例如:工作流定义 X 处理小部件),并通过创建一个实例来处理该工作项的各种状态和转换每个工作项的定义。
工作项实现了一个 IWorkItem 接口,允许将其作为一种状态机进行处理(例如,它具有当前状态和一组运行、停止、暂停等方法来控制它)。
在 Windows Workflow 中,如何定义工作项?它可以是在我的 SQL Server 数据库中建模的自定义实体吗?我必须给它任何特定的字段吗?在我的代码中表示它的对象是否必须实现特定的接口?就底层行数据而言,它如何响应持久性/解除持久性?如何轻松查询数据库以获取实体的状态?