Многоразовые вспомогательные рабочие процессы? - PullRequest
2 голосов
/ 17 апреля 2011

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

Ответы [ 2 ]

1 голос
/ 18 апреля 2011

Полагаю, я понимаю ваши цели, однако это не так просто, как вы думаете.

Первый инстинкт состоит в том, чтобы добавить Activity в ваше решение (Add => New Item => Workflow => Actvity) и перетащить другие Activity на поверхность конструктора.

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

designer fail

Это не совсем полезно. Альтернативой является создание пользовательского действия, которое реализует IActivityTemplateFactory . Этот тип (я считаю *) может быть добавлен в панель инструментов. Когда они перетаскиваются на поверхность конструктора, вызывается метод Create . В этом методе вы можете создать любой рабочий процесс и вернуть его. Это дерево действий будет добавлено в рабочий процесс, чтобы все действия в нем были видны.

* Вам также может потребоваться расширить действие, чтобы оно отображалось на панели инструментов; Я не уверен в этом. Думайте о Деятельности как о пустышке, которая на самом деле никогда не используется.

0 голосов
/ 29 апреля 2011

Это также может быть полезно

http://blogs.msdn.com/b/mwinkle/archive/2009/12/24/swiss-cheese-and-wf4-or-an-introduction-to-activityaction.aspx

Одним из распространенных сценариев, часто запрашиваемых клиентами WF 3, была возможность иметь шаблон или «серый ящик» или«Деятельность с дырками» в них (отсюда и швейцарский сыр на фото выше).В WF4 мы сделали это так, как мы называем ActivityAction

...