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() 呼び出しに渡すことができます。したがって、3 つのプロパティを持つクラスを作成し、そのクラスのインスタンスを使用するだけです。

于 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 に答える