Вы можете переопределить конструктор WF в своем приложении, чтобы конечные пользователи меняли рабочие процессы. Когда вы принимаете дизайнера, вы в значительной степени контролируете, что они могут делать. Например, вы можете запретить им удалять или отключать действия и разрешать им добавлять определенные новые действия в предопределенные области рабочего процесса. Лучший подход - сохранить эти рабочие процессы как файлы XOML и запустить их как таковые. Это означает, что вы не можете добавить код в рабочий процесс, но вы можете определить свой базовый класс рабочего процесса, полученный из SequentialWorkflowActivity (или эквивалент состояния), и использовать его в качестве базового класса рабочего процесса. Это позволяет добавлять код и свойства. Например, вы все равно можете добавить CodeActivity, но вам нужно связать код с базовым классом.
Сериализация рабочего процесса или обезвоживание, как он называется, используется для выполнения рабочих процессов для их сохранения на диске. Это использует стандартную двоичную сериализацию .NET и может быть довольно сложной из-за продолжительного характера рабочих процессов. Но неважно, когда вы знаете, что искать. См. http://msmvps.com/blogs/theproblemsolver/archive/2008/09/10/versioning-long-running-workfows.aspx для начала серии сообщений в блогах.
Не уверен, что вам это нужно, но есть возможность изменить уже выполняемые рабочие процессы. Для этого используется объект WorkflowChanges. См. Здесь http://wiki.windowsworkflowfoundation.eu/default.aspx/WF/RuntimeModificationOfWorkflows.html для более подробной информации.
Поскольку автор ссылки в моем ответе здесь, мой ответ устарел ... Мое голосование за ваши прекрасные должности (и блог в целом). – Panos 2008-09-22 17:11:09