решаемой этот вопрос. This article helped me.
Что нужно сделать, это установить действие InitializeWorkflow и создать новый токен корреляции для этого действия. Родитель для этого токена соответствия должен быть установлен родительской последовательностью. Затем используйте этот новый токен в событии OnWorkflowItemChanged.
Все для меня работает, как ожидалось, если деятельность положить в следующем порядке:
-Replicator (i have to create multiple tasks)
--Sequence
--some stuff
---InitializeWorkflow (this activity is for bugfix, create new token, parent=Sequence)
---While (in my case: while task changed or wf item changed)
----ListenActivity
-----EventDriven (OnTaskChanged)
-----EventDriven (OnWorkflowItemChanged, use newly created token)
Ввод другой последовательности и initializeworkflow в цикле WHILE привело к OnWorkflowItemChanged вызывается только первый раз элемент изменяется.
выглядит многообещающим, позвольте мне попробовать – Wint
Неожиданно \t System.InvalidOperationException: эта операция не может выполняться во время выполнения. в System.Workflow.ComponentModel.DependencyObject.SetValueCommon (DependencyProperty dependencyProperty, значение Object, метаданные PropertyMetadata, Boolean shouldCallSetValueOverrideIfExists) в System.Workflow.ComponentModel.DependencyObject.SetValue (DependencyProperty dependencyProperty, значение объекта) в System.Workflow.Activities.CallExternalMethodActivity.set_CorrelationToken (CorrelationToken value), я получил эту ошибку, когда вручную установил токен, как вы это сделали? – Wint
@Wint Я не могу найти конкретный код, я использовал эту вещь, или, может быть, я сделал это по-другому ... Вы уверены, что сделали это, как указано ссылкой [article] (http: //blogs.msdn. ком/yvan_duhamel/Архив/2009/11/25/Workflow-замки, потому-из-onworkflowitemchanged-событийного handler.aspx)? Похоже, вы назначаете токен корреляции во время выполнения, пытаетесь сделать его с конструктором и привязать к свойству CorrelationToken для действия InitializeWorkflow. (Не забудьте указать свойство OwnerActivityName для родительской последовательности). Затем свяжите это CorrelationToken с дизайнером для события onWorkflowItemChanged. –