This documentation is archived and is not being maintained.

NativeActivity.CacheMetadata Method (NativeActivityMetadata)

Creates and validates a description of the activity’s arguments, variables, child activities, and activity delegates.

Namespace:  System.Activities
Assembly:  System.Activities (in System.Activities.dll)

protected virtual void CacheMetadata(
	NativeActivityMetadata metadata


Type: System.Activities.NativeActivityMetadata
The activity’s metadata that encapsulates the activity’s arguments, variables, child activities, and activity delegates.

The workflow runtime uses the default implementation of CacheMetadata(NativeActivityMetadata) to ensure correct construction of a workflow as well as to manage run-time relationships and lifetime rules. The default implementation of CacheMetadata(NativeActivityMetadata) examines the public members of the activity type using the type’s TypeDescriptor. These public members are of type Argument, Variable, [T:System.Collections.Generic.IEnumerable<T:System.Activities.Variable>], Activity, [T:System.Collections.Generic.IEnumerable<T:System.Activities.Activity>], or ActivityDelegate. You can override this method to customize the building of the activity’s run-time description and to provide custom validation logic. Any exceptions that are thrown from CacheMetadata are not treated as validation errors. These exceptions will escape from the call to Validate and must be handled by the caller.

The following code sample demonstrates using CacheMetadata in a class that inherits from NativeActivity<TResult>. This example is from the Custom Composite using Native Activity sample.

protected override void CacheMetadata(NativeActivityMetadata metadata)
    //call base.CacheMetadata to add the Activities and Variables to this activity's metadata
    //add the private implementation variable: currentIndex 

.NET Framework

Supported in: 4

.NET Framework Client Profile

Supported in: 4

Windows 7, Windows Vista SP1 or later, Windows XP SP3, Windows Server 2008 (Server Core not supported), Windows Server 2008 R2 (Server Core supported with SP1 or later), Windows Server 2003 SP2

The .NET Framework does not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.