Параметры настройки пользовательского действия для дочернего действия

Я пытаюсь создать настраиваемое действие для WF4, в котором размещается дочернее действие и передается некоторые аргументы его дочернему действию. Ниже я прилагаю упрощенную версию моих действий (родительский и дочерний)

public class Child : CodeActivity
{
    public InArgument<Dictionary<string, object>> Data;

    protected override void Execute(CodeActivityContext context)
    {
        Dictionary<string, object> data = Data.Get(context);

        //Some operations on the input data
    }
}


 public class Parent : NativeActivity
{
    public InArgument<int> Value1 { get; set; }

    public InArgument<string> Value2 { get; set; }

    public Child Body { get; set; }


    protected override void Execute(NativeActivityContext context)
    {
        int value1 = Value1.Get(context);
        string value2 = Value2.Get(context);

        Dictionary<string, object> data = new Dictionary<string, object>();
        data.Add("value1", value1);
        data.Add("value2", value2);

        context.SetValue(Body.Data, data);

        context.ScheduleActivity(this.Body);
    }


    protected override void CacheMetadata(NativeActivityMetadata metadata)
    {
        Body = new Child();

        base.CacheMetadata(metadata);
    }
}

Аргумент Data из дочернего действия имеет значение null, когда выполнение рабочего процесса достигает метода Execute для действия.

Подскажите, пожалуйста, дайте мне какое-то направление, как можно передавать аргументы между этими двумя действиями?

5
задан Cœur 30 April 2017 в 09:08
поделиться