Можно ли запланировать динамически создаваемое дочернее действие? - PullRequest
0 голосов
/ 05 октября 2011

Кто-нибудь знает, возможно ли в собственном действии WF4 планировать динамически создаваемое дочернее действие? Действие принимает аргументы, которые определяют дочернюю активность для создания и запуска. Я столкнулся с проблемами CacheMetadata.

Ответы [ 2 ]

1 голос
/ 06 октября 2011

Невозможно, но вы можете использовать поддержку InvokeWorkflow / LoadActivity, встроенную в Microsoft.Activities. См. Как вызвать дочерний рабочий процесс как XAML

0 голосов
/ 05 октября 2011

Среда выполнения рабочего процесса должна знать, какие действия вы собираетесь выполнить перед выполнением. Таким образом, вы не можете сделать следующее:

protected override void Execute(NativeActivityContext context)
{
    context.ScheduleActivity(new MyActivity());
}

К сожалению, то же самое касается обработчика действия ActivityAction или ActivityFunc . Они также должны быть установлены и представлены среде выполнения во время вызова CacheMetadata.

Единственное возможное решение - реализовать IActivityTemplateFactory и предоставить некоторую реализацию вашему дочернему действию во время разработки, когда оно отбрасывается на поверхность проектирования, и, возможно, обновить вашего ребенка во время обращений к CacheMetadata путем изучения текущего рабочий процесс и соответствующие действия перед регистрацией дочернего элемента во время выполнения.

...