Я пытаюсь создать настраиваемое действие для 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 для действия.
Подскажите, пожалуйста, дайте мне какое-то направление, как можно передавать аргументы между этими двумя действиями?