如何在调用CreateBookmark时添加参数

时间:2012-01-11 12:03:40

标签: workflow-foundation workflow-foundation-4 workflow-activity

我有一个NativeActivity,我在Execute方法中创建了一个书签,这样我就知道我在工作流程中的位置。我创建书签的原因是文章的库存不足,所以我需要询问用户是否需要另一篇库存文章。

用户会有一个问题来选择库存中的替代文章之一。要获得替代文章,我需要从工作流程中获取原始文章编号。

我使用ASP .NET MVC因此我没有文章编号,因为它是无状态的。工作流程不会出现在已完成的事件中,因此我无法阅读OutArguments。我需要知道如何通过书签传递参数。

由于

public sealed class AskAlternative : NativeActivity
{
    public OutArgument<string> ArticleNumber { get; set; }

    protected override bool CanInduceIdle { get { return true; } }

    protected override void Execute(NativeActivityContext context)
    {
        context.CreateBookmark(ShoppingCartFlowActivityViews.AskAlternative.ToString(), Continue);
    }

    void Continue(NativeActivityContext context, Bookmark bookmark, object obj)
    {
        var tuple = (Tuple<string>)obj;

        context.SetValue(ArticleNumber, tuple.Item1);
    }

}

1 个答案:

答案 0 :(得分:0)

您不会向书签添加参数。相反,您通常会创建一个书签,然后将书签或其名称以及任何其他将要恢复书签的数据传递给它。这通常涉及活动或工作流程扩展,但这不是必须的。