1

我想知道如何在工作流书签中传递多个输入参数。我有这个代码

   public sealed class CodeActivity1 : NativeActivity<String>
{
    [RequiredArgument]
    public InArgument<string> BookmarkName { get; set; }

    protected override void Execute(NativeActivityContext context)
    {

        context.CreateBookmark(BookmarkName.Get(context),
            new BookmarkCallback(OnResumeBookmark));
    }

    // NativeActivity derived activities that do asynchronous operations by calling 
    // one of the CreateBookmark overloads defined on System.Activities.NativeActivityContext 

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

    public void OnResumeBookmark(NativeActivityContext context, Bookmark bookmark, object obj)
    {
        Result.Set(context, (string)obj);
    }
}

当我像 app.ResumeBookmark("Test", "inputTest"); 一样恢复它时。但是,如果我有例如 2 个输出参数,例如

        public InArgument<string> BookmarkName { get; set; }
        public OutArgument<string> Test1 {get; set;}
        public OutArgument<string> Test2 {get; set;}

如何使用 app.ResumeBookmark() 调用此书签?并从外部设置 2 个 OutArguments?像 app.ResumeBookmark("Test","Inputtest1","Inputtest2")?谢谢你的时间

4

2 回答 2

3

您可以将所需的任何对象传递给 ResumeBookmark() 调用。所以只需创建一个具有三个属性的类并使用该类的一个实例。

于 2011-08-18T11:57:34.763 回答
0

您可以尝试以下方法:

    public void OnResumeBookmark(NativeActivityContext context, Bookmark bookmark, object obj)    {        
        Test t = obj as Text;
        context.SetValue(this.Test1, t.S1);    
        context.SetValue(this.Test2, t.S2);    
    }
于 2011-08-18T16:47:23.947 回答