StateMachineWorkflowActivity.InitialStateName Property

Definition

Gets or sets the StateActivity in which the StateMachineWorkflowActivity is when an instance of the state machine is created.

public:
 property System::String ^ InitialStateName { System::String ^ get(); void set(System::String ^ value); };
[System.Workflow.ComponentModel.Compiler.ValidationOption(System.Workflow.ComponentModel.Compiler.ValidationOption.Optional)]
public string InitialStateName { get; set; }
[<System.Workflow.ComponentModel.Compiler.ValidationOption(System.Workflow.ComponentModel.Compiler.ValidationOption.Optional)>]
member this.InitialStateName : string with get, set
Public Property InitialStateName As String

Property Value

The StateActivity in which the StateMachineWorkflowActivity is when an instance of the state machine is created.

Attributes

Examples

The following code example shows how to set the value of the InitialStateName property. This code example is part of the SimpleStateMachineWorkflow SDK sample from the StateMachineWorkflow.cs file. For more information, see Simple State Machine.

this.CanModifyActivities = true;
this.setCompletedState = new System.Workflow.Activities.SetStateActivity();
this.code2 = new System.Workflow.Activities.CodeActivity();
this.state1Delay = new System.Workflow.Activities.DelayActivity();
this.setState1 = new System.Workflow.Activities.SetStateActivity();
this.code1 = new System.Workflow.Activities.CodeActivity();
this.startStateDelay = new System.Workflow.Activities.DelayActivity();
this.eventDriven2 = new System.Workflow.Activities.EventDrivenActivity();
this.eventDriven1 = new System.Workflow.Activities.EventDrivenActivity();
this.CompletedState = new System.Workflow.Activities.StateActivity();
this.state1 = new System.Workflow.Activities.StateActivity();
this.StartState = new System.Workflow.Activities.StateActivity();
//
// setCompletedState
//
this.setCompletedState.Name = "setCompletedState";
this.setCompletedState.TargetStateName = "CompletedState";
//
// code2
//
this.code2.Name = "code2";
this.code2.ExecuteCode += new System.EventHandler(this.Code2Handler);
//
// state1Delay
//
this.state1Delay.Name = "state1Delay";
this.state1Delay.TimeoutDuration = System.TimeSpan.Parse("00:00:02");
//
// setState1
//
this.setState1.Name = "setState1";
this.setState1.TargetStateName = "state1";
//
// code1
//
this.code1.Name = "code1";
this.code1.ExecuteCode += new System.EventHandler(this.Code1Handler);
//
// startStateDelay
//
this.startStateDelay.Name = "startStateDelay";
this.startStateDelay.TimeoutDuration = System.TimeSpan.Parse("00:00:05");
//
// eventDriven2
//
this.eventDriven2.Activities.Add(this.state1Delay);
this.eventDriven2.Activities.Add(this.code2);
this.eventDriven2.Activities.Add(this.setCompletedState);
this.eventDriven2.Name = "eventDriven2";
//
// eventDriven1
//
this.eventDriven1.Activities.Add(this.startStateDelay);
this.eventDriven1.Activities.Add(this.code1);
this.eventDriven1.Activities.Add(this.setState1);
this.eventDriven1.Name = "eventDriven1";
//
// CompletedState
//
this.CompletedState.Name = "CompletedState";
Me.CanModifyActivities = True
Me.CompletedState = New System.Workflow.Activities.StateActivity
Me.code2 = New System.Workflow.Activities.CodeActivity
Me.state1Delay = New System.Workflow.Activities.DelayActivity
Me.setState1 = New System.Workflow.Activities.SetStateActivity()
Me.code1 = New System.Workflow.Activities.CodeActivity()
Me.startStateDelay = New System.Workflow.Activities.DelayActivity()
Me.eventDriven2 = New System.Workflow.Activities.EventDrivenActivity()
Me.eventDriven1 = New System.Workflow.Activities.EventDrivenActivity()
Me.CompletedState = New System.Workflow.Activities.StateActivity()
Me.state1 = New System.Workflow.Activities.StateActivity()
Me.StartState = New System.Workflow.Activities.StateActivity()
' 
' setCompletedState
'
Me.setCompletedState.Name = "setCompletedState"
Me.setCompletedState.TargetStateName = "CompletedState"
' 
' code2
' 
Me.code2.Name = "code2"
AddHandler Me.code2.ExecuteCode, AddressOf Me.Code2Handler

' 
' state1Delay
'
Me.state1Delay.Name = "state1Delay"
Me.state1Delay.TimeoutDuration = System.TimeSpan.Parse("00:00:02")
' 
' setState1
' 
Me.setState1.Name = "setState1"
Me.setState1.TargetStateName = "state1"
' 
' code1
' 
Me.code1.Name = "code1"
AddHandler Me.code1.ExecuteCode, AddressOf Me.Code1Handler
' 
' startStateDelay
' 
Me.startStateDelay.Name = "startStateDelay"
Me.startStateDelay.TimeoutDuration = System.TimeSpan.Parse("00:00:05")
' 
' eventDriven2
' 
Me.eventDriven2.Activities.Add(Me.state1Delay)
Me.eventDriven2.Activities.Add(Me.code2)
Me.eventDriven2.Activities.Add(Me.setCompletedState)
Me.eventDriven2.Name = "eventDriven2"
' 
' eventDriven1
' 
Me.eventDriven1.Activities.Add(Me.startStateDelay)
Me.eventDriven1.Activities.Add(Me.code1)
Me.eventDriven1.Activities.Add(Me.setState1)
Me.eventDriven1.Name = "eventDriven1"
' 
' CompletedState
' 
Me.CompletedState.Name = "CompletedState"

Remarks

The InitialStateName property is mandatory and must be provided when a StateMachineWorkflowActivity is created. The InitialStateName of the state machine is like any other state activity that is contained within the state machine. The state activity can be a direct child of the StateMachineWorkflowActivity root activity and a StateMachineWorkflowActivity can have only one InitialStateName.

For more information about InitialStateName and CompletedStateName, see StateMachineWorkflowActivity.

Applies to