おそらく、ハンドラー アクティビティで必要なプロパティ (遷移アクティビティ) を定義できます。次に、ハンドラーのCacheMetadataオーバーライドで、それらが提供されているかどうかを検証できます。また、ハンドラー アクティビティのExecuteメソッドの最後に、割り当てられた遷移アクティビティをワークフロー ランタイムでスケジュールできます。次のようなもの:
public sealed class MyHandlerActivity : NativeActivity
{
public MyHandlerActivity NextHandler
{
get;
set;
}
protected override void CacheMetadata(NativeActivityMetadata metadata)
{
// Ensure next handler is supplied.
if (this.NextHandler == null)
{
metadata.AddValidationError("Next handler is not assigned.");
return;
}
// Let the workflow runtime that this activity could schedule another activity (the handler activity).
metadata.AddChild(this.NextHandler);
}
protected override void Execute(NativeActivityContext context)
{
// TODO: Handler should do something here.
// Schedule the next handler.
context.ScheduleActivity(this.NextHandler);
}
}