NativeActivity Class
Abstract base class for custom activities that implement execution logic using the Execute method, which has full access to the runtime’s features.
Namespace: System.Activities
Assembly: System.Activities (in System.Activities.dll)
The NativeActivity type exposes the following members.
| Name | Description | |
|---|---|---|
![]() | NativeActivity | When implemented in a derived class, creates a new instance of the derived class. |
| Name | Description | |
|---|---|---|
![]() | CacheId | Gets the identifier of the cache that is unique within the scope of the workflow definition. (Inherited from Activity.) |
![]() | CanInduceIdle | Gets or sets a value that indicates whether the activity can cause the workflow to become idle. |
![]() | Constraints | Gets a collection of Constraint activities that can be configured to provide validation for the Activity. (Inherited from Activity.) |
![]() | DisplayName | Gets or sets an optional friendly name that is used for debugging, validation, exception handling, and tracking. (Inherited from Activity.) |
![]() | Id | Gets an identifier that is unique in the scope of the workflow definition. (Inherited from Activity.) |
![]() | Implementation | The execution logic of the activity. (Overrides Activity.Implementation.) |
![]() | ImplementationVersion | Gets or sets the implementation version of the activity. (Overrides Activity.ImplementationVersion.) |
| Name | Description | |
|---|---|---|
![]() | Abort | When implemented in a derived class, takes actions in response to the activity being aborted. |
![]() | CacheMetadata(ActivityMetadata) | Not implemented. Use the CacheMetadata method instead. (Overrides Activity.CacheMetadata(ActivityMetadata).) |
![]() | CacheMetadata(NativeActivityMetadata) | Creates and validates a description of the activity’s arguments, variables, child activities, and activity delegates. |
![]() | Cancel | When implemented in a derived class, runs logic to cause graceful early completion of the activity. |
![]() | Equals(Object) | Determines whether the specified object is equal to the current object. (Inherited from Object.) |
![]() | Execute | When implemented in a derived class, runs the activity’s execution logic. |
![]() | Finalize | Allows an object to try to free resources and perform other cleanup operations before it is reclaimed by garbage collection. (Inherited from Object.) |
![]() | GetHashCode | Serves as a hash function for a particular type. (Inherited from Object.) |
![]() | GetType | Gets the Type of the current instance. (Inherited from Object.) |
![]() | MemberwiseClone | Creates a shallow copy of the current Object. (Inherited from Object.) |
![]() | OnCreateDynamicUpdateMap(NativeActivityUpdateMapMetadata, Activity) | Raises an event when creating a map for the dynamic update. |
![]() | OnCreateDynamicUpdateMap(UpdateMapMetadata, Activity) | Raises an event when creating a map for the dynamic update. (Overrides Activity.OnCreateDynamicUpdateMap(UpdateMapMetadata, Activity).) |
![]() | ShouldSerializeDisplayName | Indicates whether the DisplayName property should be serialized. (Inherited from Activity.) |
![]() | ToString | Returns a String that contains the Id and DisplayName of the Activity. (Inherited from Activity.) |
![]() | UpdateInstance | Updates the instance of NativeActivity. |
The following code sample demonstrates creating a class that inherits from NativeActivity<TResult>. This example is from the Custom Composite using Native Activity sample.
public sealed class MySequence : NativeActivity
{
Collection<Activity> children;
Collection<Variable> variables;
Variable<int> currentIndex;
CompletionCallback onChildComplete;
public MySequence()
: base()
{
this.children = new Collection<Activity>();
this.variables = new Collection<Variable>();
this.currentIndex = new Variable<int>();
}
public Collection<Activity> Activities
{
get
{
return this.children;
}
}
public Collection<Variable> Variables
{
get
{
return this.variables;
}
}
protected override void CacheMetadata(NativeActivityMetadata metadata)
{
//call base.CacheMetadata to add the Activities and Variables to this activity's metadata
base.CacheMetadata(metadata);
//add the private implementation variable: currentIndex
metadata.AddImplementationVariable(this.currentIndex);
}
protected override void Execute(NativeActivityContext context)
{
InternalExecute(context, null);
}
void InternalExecute(NativeActivityContext context, ActivityInstance instance)
{
//grab the index of the current Activity
int currentActivityIndex = this.currentIndex.Get(context);
if (currentActivityIndex == Activities.Count)
{
//if the currentActivityIndex is equal to the count of MySequence's Activities
//MySequence is complete
return;
}
if (this.onChildComplete == null)
{
//on completion of the current child, have the runtime call back on this method
this.onChildComplete = new CompletionCallback(InternalExecute);
}
//grab the next Activity in MySequence.Activities and schedule it
Activity nextChild = Activities[currentActivityIndex];
context.ScheduleActivity(nextChild, this.onChildComplete);
//increment the currentIndex
this.currentIndex.Set(context, ++currentActivityIndex);
}
}
Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (Server Core Role not supported), Windows Server 2008 R2 (Server Core Role supported with SP1 or later; Itanium not supported)
The .NET Framework does not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.
System.Activities.Activity
System.Activities.NativeActivity
System.Activities.Statements.CancellationScope
System.Activities.Statements.Compensate
System.Activities.Statements.Confirm
System.Activities.Statements.Delay
System.Activities.Statements.DeleteBookmarkScope
System.Activities.Statements.DoWhile
System.Activities.Statements.Flowchart
System.Activities.Statements.ForEach<T>
System.Activities.Statements.HandleScope<THandle>
System.Activities.Statements.If
System.Activities.Statements.Interop
System.Activities.Statements.InvokeAction
System.Activities.Statements.InvokeAction<T>
System.Activities.Statements.InvokeAction<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10>
System.Activities.Statements.InvokeAction<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11>
System.Activities.Statements.InvokeAction<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12>
System.Activities.Statements.InvokeAction<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13>
System.Activities.Statements.InvokeAction<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14>
System.Activities.Statements.InvokeAction<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15>
System.Activities.Statements.InvokeAction<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16>
System.Activities.Statements.InvokeAction<T1, T2>
System.Activities.Statements.InvokeAction<T1, T2, T3>
System.Activities.Statements.InvokeAction<T1, T2, T3, T4>
System.Activities.Statements.InvokeAction<T1, T2, T3, T4, T5>
System.Activities.Statements.InvokeAction<T1, T2, T3, T4, T5, T6>
System.Activities.Statements.InvokeAction<T1, T2, T3, T4, T5, T6, T7>
System.Activities.Statements.InvokeAction<T1, T2, T3, T4, T5, T6, T7, T8>
System.Activities.Statements.InvokeAction<T1, T2, T3, T4, T5, T6, T7, T8, T9>
System.Activities.Statements.InvokeDelegate
System.Activities.Statements.NoPersistScope
System.Activities.Statements.Parallel
System.Activities.Statements.ParallelForEach<T>
System.Activities.Statements.Persist
System.Activities.Statements.Pick
System.Activities.Statements.Rethrow
System.Activities.Statements.Sequence
System.Activities.Statements.StateMachine
System.Activities.Statements.Switch<T>
System.Activities.Statements.TerminateWorkflow
System.Activities.Statements.TransactionScope
System.Activities.Statements.TryCatch
System.Activities.Statements.While
System.Activities.Validation.AddValidationError
System.Activities.Validation.AssertValidation
System.Activities.Validation.Constraint
System.ServiceModel.Activities.CorrelationScope
System.ServiceModel.Activities.InitializeCorrelation
System.ServiceModel.Activities.TransactedReceiveScope



