![]() ![]() | ||||
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
| ||