这里的问题主要是在这种情况下发件人是a CodeActivity 不是 ActivityExecutionContext 。所以这个代码在第一个障碍就失败了。
CodeActivity
ActivityExecutionContext
以下是可以执行以下操作的自定义活动示例: -
public class RecurseApproval : Activity { protected override ActivityExecutionStatus Execute(ActivityExecutionContext executionContext) { IStartWorkflow aWorkflow = executionContext.GetService(typeof(IStartWorkflow)) as IStartWorkflow; Dictionary<string, object> parameters = new Dictionary<string, object>(); parameters.Add("Param1", "Foo"); parameters.Add("Param2", "bar"); Guid guid = aWorkflow.StartWorkflow(typeof(ApprovalWorkflow), parameters); return ActivityExecutionStatus.Closed; } }
请注意,GetService的类型为 IStartWorkflow 。
IStartWorkflow
您的发件人的类型为CodeActivity而非ActivityExecutionContext。您需要创建自定义活动并覆盖Execute方法,该方法将向您传递ActivityExecutionContext。