2
我已經創建了一個包含子活動集合的自定義本地活動。如果其中一項活動失敗,我正試圖取消兒童活動。撥打context.CancelChildren()不會調用取消在兒童活動中。如何取消WF4中的兒童活動?
下面是例如:
public sealed class MyCompositeActivity : NativeActivity
{
public Collection<Activity> Activities { get; set; }
protected override void Execute(NativeActivityContext context)
{
ScheduleActivity(context);
}
protected override void CacheMetadata(NativeActivityMetadata metadata)
{
base.CacheMetadata(metadata);
metadata.SetChildrenCollection(Activities);
}
private void ScheduleActivity(NativeActivityContext context)
{
// Get next activity
....
context.ScheduleActivity(nextActivity, OnActivityCompleted, OnActivityFaulted);
}
private static void OnActivityFaulted(NativeActivityFaultContext context, Exception exception, ActivityInstance faultedInstance)
{
context.HandleFault();
context.CancelChildren();
}
}