для процесса 4.0
Вы можете получить закладки из WorkflowInstance
IEnumerable<BookmarkInfo> bookMarks = workflowInstance.GetAllBookmarks();
Только активные закладки, то есть закладки, которые на самом деле чего-то ждут, будут перечислены. В последовательном рабочем процессе без параллельных действий, которые будут сообщать вам тот, который ждет. Но во многих ситуациях будет больше, чем одна закладка, ожидающая ввода. Вы не можете определить, какой из них вызвал состояние идола.
Возможно, вам удастся получить дополнительную информацию, подключив что-то к событию WorkflowInstance.OnIdle. Это не совсем настоящее событие .NET, но оно выполняет одно и то же. Это не скажет вам, почему вы попали в состояние ожидания, но, надеюсь, зная, что время покажет вам больше.
для процесса 3.0
Я не уверен, что это поможет, но так как у вас есть WorkflowInstance вы можете задать его для коллекции объектов WorkflowQueueInfo по телефону GetWorkflowQueueData(). Класс WorkflowQueueInfo сообщит вам, какие действия подписаны на очередь и если в очереди есть элементы. Пустая очередь с действиями, подписанными на нее, может показать вам, что вам нужно. Эти действия ждут чего-то, но делать нечего. Это должна быть закладка, которую вы ищете.
Извините, я забыл уточнить, это WF 4.0, о котором я говорю ... WorkflowInstance.GetWorkflowQueueData не существует в 4.0 – Adam
О, извините. Я должен был понять, что вы имели в виду 4.0, когда вы сказали «Закладка». Я отредактирую ответ. –
В 4.0, где определено значение GetAllBookmarks()? Я не вижу его в System.Workflow.Runtime.WorkflowInstance. – lesscode