, , , : -
XOML WorkflowMarkupSerializer, System.Workflow.ComponentModel.Serialization.
var serializer = new WorkflowMarkupSerializer();
object root = serializer.Deserialize(myXmlReader);
"" , , CompositeActivity, CompostiteActivityMarkupSerializer.
. WorkflowChanges , .
- , . : -
ApplyWorkflowChanges, protected .- , .
, , , .
, , , SequenceActivity, "InvokeWorkflow", , , .
, : -
internal interface IModifiableWorkflow
{
void ApplyWorkflowChanges(WorkflowChanges workflowChanges);
}
: -
public class CustomSequentialActivity : SequentialWorkflowActivity, IModifiableWorkflow
{
void IModifiableWorkflow.ApplyWorkflowChanges(WorkflowChanges workflowChanges)
{
base.ApplyWorkflowChanges(workflowChanges);
}
}
Execute InvokeWorkflow: -
var root = this.Parent;
while (root.Parent != null) { root = root.Parent; }
var changes = new WorkflowChanges(root);
var target = changes.TransientWorkflow.GetActivityByName(this.Parent.Name);
Activity newActivity = YourCodeToLoadActivityDetailsFromXoml();
target.Activities.Add(newActivity);
((IModifiableWorkflow)root).ApplyWorkflowChanges(changes);
. , , .