Вопрос о рабочем процессе Закладки - PullRequest
1 голос
/ 18 августа 2011

Я хочу знать, как я могу передать более одного входного аргумента в закладку рабочего процесса.у меня есть этот код

   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 («Тест», «Inputtest1», «Inputtest2»)?Спасибо за ваше время

Ответы [ 2 ]

3 голосов
/ 18 августа 2011

Вы можете передать любой объект в вызов ResumeBookmark (). Так что просто создайте класс с тремя свойствами и используйте экземпляр этого класса.

0 голосов
/ 18 августа 2011

Вы можете попробовать следующее:

    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);    
    }
...