ValueTypeFieldReference<TOperand, TResult> Class

Represents a field on a value type that can be used as an l-value in an expression.

          System.Activities.Expressions.ValueTypeFieldReference<TOperand, TResult>

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

public sealed class ValueTypeFieldReference<TOperand, TResult> : CodeActivity<Location<TResult>>

Type Parameters


The value type.


The field type.

The ValueTypeFieldReference<TOperand, TResult> type exposes the following members.

Public methodValueTypeFieldReference<TOperand, TResult>Initializes a new instance of the ValueTypeFieldReference<TOperand, TResult> class.

Protected propertyCacheIdGets the identifier of the cache that is unique within the scope of the workflow definition. (Inherited from Activity.)
Public propertyDisplayNameGets or sets an optional friendly name that is used for debugging, validation, exception handling, and tracking. (Inherited from Activity.)
Public propertyFieldNameGets or sets the name of the field.
Public propertyIdGets an identifier that is unique in the scope of the workflow definition. (Inherited from Activity.)
Protected propertyImplementationVersionGets or sets the implementation version of the activity. (Inherited from CodeActivity<TResult>.)
Public propertyOperandLocationGets or sets the instance of the value type that contains the field.
Public propertyResultGets or sets the result argument for the Activity<TResult>. (Inherited from Activity<TResult>.)
Public propertyResultTypeWhen implemented in a derived class, gets the type of an activity OutArgument. (Inherited from ActivityWithResult.)

Public methodEquals(Object)Determines whether the specified object is equal to the current object. (Inherited from Object.)
Public methodGetHashCodeServes as the default hash function. (Inherited from Object.)
Public methodGetTypeGets the Type of the current instance. (Inherited from Object.)
Public methodShouldSerializeDisplayNameIndicates whether the DisplayName property should be serialized. (Inherited from Activity.)
Public methodToStringReturns a String that contains the Id and DisplayName of the Activity. (Inherited from Activity.)

The following code example uses ValueTypeFieldReference<TOperand, TResult> in an Assign activity to assign an integer value to a field and prints the field value to the console. The Assign activity is equivalent to the following statement when using the struct defined in the following example. myStructVariable.AField = 1;.


Instead of instantiating the ValueTypeFieldReference<TOperand, TResult> l-value expression activity directly, it is strongly recommended that you call ConvertReference<TResult>, which provides a higher level of abstraction and enables you to implement your workflow more intuitively.

    // Define a struct with a field named AField.
    struct StructWithField
        public int AField;

    public static void ValueTypeFieldReferenceSample()
        // Create a variable of type StructWithField to store the property.
        var swfvar = new Variable<StructWithField>("swfvar", new StructWithField());

        Activity myActivity = new Sequence
            Variables = { swfvar },
            Activities = 
                // Create an Assign activity to assign a value to the AField field.
                new Assign<int>
                    To = new ValueTypeFieldReference<StructWithField, int>()
                        OperandLocation = swfvar,
                        FieldName = "AField",
                    // Assign an integer value to AField.
                    Value = 1,
                // Print the new field value to the console.
                new WriteLine()
                    Text = ExpressionServices.Convert<string>(ctx => swfvar.Get(ctx).AField.ToString()),

        // Invoke the Sequence activity.

.NET Framework

Supported in: 4.5.2, 4.5.1, 4.5, 4

.NET Framework Client Profile

Supported in: 4

Windows 8.1, Windows Server 2012 R2, 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.

Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.
Was this page helpful?
(1500 characters remaining)
Thank you for your feedback
© 2014 Microsoft