![]() ![]() | ||||
HomeShow ChangesEditPrintRecent ChangesSubscriptionsLost and FoundFind ReferencesRename
History | Sometimes you just want to be able to create a workflow in code bus save it as a XOML workflow so the end user has the opportunity to modify it. Well it turns out to be quite easy using (XmlWriter writer = XmlWriter.Create("MyWorkflow.xoml")) { WorkflowMarkupSerializer serializer = new WorkflowMarkupSerializer(); SequentialWorkflowActivity myWorkflow = new SequentialWorkflowActivity(); ListenActivity listen = new ListenActivity(); myWorkflow.Activities.Add(listen); EventDrivenActivity leftBranch = new EventDrivenActivity(); leftBranch.Activities.Add(new DelayActivity("LeftDelay") { TimeoutDuration = TimeSpan.FromSeconds(5) }); listen.Activities.Add(leftBranch); EventDrivenActivity rightBranch = new EventDrivenActivity(); rightBranch.Activities.Add(new DelayActivity("RightDelay") { TimeoutDuration = TimeSpan.FromSeconds(5) }); listen.Activities.Add(rightBranch); serializer.Serialize(writer, myWorkflow); } This produces the following XOML workflow: <?xml version="1.0" encoding="utf-8"?> <SequentialWorkflowActivity x:Name="SequentialWorkflowActivity" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/workflow"> <ListenActivity x:Name="listenActivity1"> <EventDrivenActivity x:Name="eventDrivenActivity1"> <DelayActivity TimeoutDuration="00:00:05" x:Name="LeftDelay" /> </EventDrivenActivity> <EventDrivenActivity x:Name="eventDrivenActivity2"> <DelayActivity TimeoutDuration="00:00:05" x:Name="RightDelay" /> </EventDrivenActivity> </ListenActivity> </SequentialWorkflowActivity> | Wiki Usage
This wiki site is supposed to be a shared resource. As a shared resource everyone is encouraged to add new content or modify existing content! Enjoy the WF wiki. Recent Topics | ||