Хостинг WPF и динамическое редактирование службы рабочего процесса во время выполнения? - PullRequest
1 голос
/ 16 октября 2011

Учитывая службу рабочего процесса (testService.xamlx), которая имеет ReceiveRequest и SendResponse (и ничего больше на данный момент), возможно ли развернуть эту службу в IIS и по-прежнему редактировать ее пользователем (используя повторноразмещенный в WPF конструктор) с изменениями, вступающими в силу?

По сути, я хочу выбросить поток базовой службы и позволить пользователям редактировать рабочий процесс в конструкторе, нажать «Сохранить», и при следующем вызове использовать вновь отредактированный поток.Я понял, как повторно разместить дизайнер, но не могу понять, как загрузить / отредактировать / сохранить сервис рабочего процесса во время выполнения.

Любая помощь будет принята с благодарностью!

1 Ответ

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

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

Если вы пойдете по этому пути, вы можете просто перезаписать файл XAMLX, так как он не скомпилирован, а используется как есть, и перезапустить WorkflowServiceHost, чтобы получить изменения. В качестве альтернативы вы можете сохранить рабочий процесс в файл XAML или любой другой поток и загрузить его с помощью ActivityXamlServices. Затем вы можете создать экземпляр WorkflowServiceHost, используя это определение рабочего процесса.

...