Получить параметры из запущенного рабочего процесса - PullRequest
0 голосов
/ 18 января 2012

Я смотрел примеры WF Wizard на endpoint.tv и здесь: http://stevenalexander.posterous.com/integrating-a-persisted-wf40-workflow-with-mv

Я хочу иметь возможность использовать WF для управления мастером, а также для временного хранилища.для неполных волшебников.Это означает, что для каждого шага мастера я не сохраняю данные до конца рабочего процесса, когда все данные были введены.

У меня есть базовый пример, который почти работает, основанный на ссылке вышекоторый работает:

  1. Создает и сохраняет новый рабочий процесс
  2. // пользователь затем переходит к первому шагу мастера //
  3. WF возобновляется, модель передаетсяна BookMarkCallback
  4. Обновлена ​​глобальная коллекция моделей WF.
  5. Затем WF переходит к следующему шагу, если пользователь выбрал следующий.

Однако,проблема в том, что, хотя WF сохраняет данные, я не могу найти способ получить данные посередине.то есть, если пользователь перезагружает шаг 1, я не знаю, как мне вернуть эту сохраненную модель обратно пользователю.

Есть предложения?

1 Ответ

2 голосов
/ 25 января 2012

хорошо .. для всех остальных ..

Я решил эту проблему, используя свое собственное расширение «Уведомление», которое имеет обработчик событий Уведомления как таковой:

public class HostEventNotifier : IHostNotification
{
    public event EventHandler<HostNotifyEventArgs> Notification;

    public void Notify(object model)
    {
        if(Notification != null)
        {
            Notification(this, new HostNotifyEventArgs(model));

        }
    }
}

Расширение было добавлено в приложение WF и могло вызываться в моих событиях мастера как:

 var ext = context.GetExtension<IHostNotification>();
        var parentModel = context.GetValue(ParentModel);
        if(ext!=null && parentModel !=null)
        {
            if(parentModel.ContainsKey(bookmarkName))
            {
                ext.Notify(parentModel[bookmarkName]);
                Thread.Sleep(500);
            }

        }

Наконец, обработчик события расширения был установлен на метод, который знал, как обрабатывать мои данные.

Это все еще не полностью - я не разработал модель потоков (отсюда и uglt Thread.Sleep), но я хотел дать ответ любому, кто ищет.

Идея для этого пришла от "Pro WF 4 / Bukovics", адрес

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...