另一个自定义活动中的自定义子活动;不要坚持下去

本文关键字:自定义 坚持 活动 活动中 另一个 | 更新日期: 2023-09-27 17:59:20

我有一个自定义活动,其中包含其他活动,可以使用如下执行属性:

public sealed  class GlobalContainerActivity:NativeActivity
{
[RequiredArgument]
 public InArgument<WfParam> WfparamInArg { get; set; }
        /// <summary>
    ///   Gets or sets Body.
    /// </summary>
    [DefaultValue(null)]
    public Activity Body { get; set; }

    protected override void Execute(NativeActivityContext context)
    {
        var generalargument = context.GetValue(WfparamInArg);
        context.Properties.Add(GlobalWfparam.Name, new GlobalWfparam(generalargument));
        if (Body != null)
        {
            context.ScheduleActivity(Body);
        }
    }

我有一个自定义的子活动,它将人类交互的工作流持久化,如下所示:

 public  class WaitActivity :NativeActivity
{
   public string BookmarkName { get; set; }
   public OutArgument<WfBookmark> WfBookmark { get; set; }
    protected override void Execute(NativeActivityContext context)
    {
        try
        {
            BookmarkName = "ResumeFlow";
            context.CreateBookmark(BookmarkName, Continue);
        }
        catch (Exception)
        {
            throw;
        }
    }
    private void Continue(NativeActivityContext context, Bookmark bookmark, object value)
    {
        WfBookmark wfBookmarkParam = (WfBookmark)value;
        WfBookmark.Set(context, wfBookmarkParam);
       }
    protected override bool CanInduceIdle
    {
        get
        {
            return true;
        }
    }
}

在完成此类之后,工作流程停止,没有任何错误,但在那之后,我想恢复工作流,我遇到了一个错误,提到InstanceStore Id没有持久化,也没有恢复流程

另一个自定义活动中的自定义子活动;不要坚持下去

我发现有一种想法叫做"无持久区域",我用错了方法,所以我建议不要在你想持久化WorkFlow 时使用它