我有两个自定义的NativeActivity(Root和Final)以及各自的ActivityDesigner:
在Root NativeActivity中我有:
[ContentProperty("Body")]
[Designer(typeof(RootActivityDesigner))]
public class RootActivity : NativeActivity
{
public Activity Body { get; set; }
protected override void Execute(NativeActivityContext context)
{
if (this.Body != null)
{
context.ScheduleActivity(this.Body);
}
}
}
和我的最终NativeActivity:
[Designer(typeof(FinalActivityDesigner))]
public class FinalActivity : NativeActivity
{
protected override void Execute(NativeActivityContext context)
{
//Do Stuff
}
}
因此,当我创建一个新的工作流程时,我先拖动RootActivity,然后在Root Body中拖动其他活动,除了没有执行的FinalActivity之外,一切正常,所以“做东西”不会被击中。
有什么问题?
我必须调用context.ScheduleActivity(this.Body);对于FinalActivity呢?
非常感谢!
答案 0 :(得分:1)
树中的FinalActivity位于何处。从设计器看起来它是RootActivity的一部分,但它的源代码不包含任何地方的FinalActivity引用。
答案 1 :(得分:0)
我不知道最终的位置和内容,但是你有以某种方式安排它。如果RootActivity
是控制实体,那么你可能会做这样的事情
public class RootActivity : NativeActivity
{
public Activity Body { get; set; }
public Activity Final { get; set; }
protected override void Execute(NativeActivityContext context)
{
if (this.Body != null)
{
context.ScheduleActivity(this.Body, OnBodyComplete);
}
}
// callback fired after Body completes execution
private void OnBodyComplete(NativeActivityContext context,
ActivityInstance completedInstance)
{
context.ScheduleActivity(Final);
}
}