ExpressionServices.ConvertReference<TResult> Méthode

Définition

Convertit une référence en expression prenant en charge l’environnement de flux de travail en arborescence d’activités.

public:
generic <typename TResult>
 static System::Activities::Activity<System::Activities::Location<TResult> ^> ^ ConvertReference(System::Linq::Expressions::Expression<Func<System::Activities::ActivityContext ^, TResult> ^> ^ expression);
public static System.Activities.Activity<System.Activities.Location<TResult>> ConvertReference<TResult>(System.Linq.Expressions.Expression<Func<System.Activities.ActivityContext,TResult>> expression);
static member ConvertReference : System.Linq.Expressions.Expression<Func<System.Activities.ActivityContext, 'Result>> -> System.Activities.Activity<System.Activities.Location<'Result>>
Public Shared Function ConvertReference(Of TResult) (expression As Expression(Of Func(Of ActivityContext, TResult))) As Activity(Of Location(Of TResult))

Paramètres de type

TResult

Type vers lequel l’expression est convertie.

Paramètres

expression
Expression<Func<ActivityContext,TResult>>

Expression convertie.

Retours

Activity<Location<TResult>>

Expression convertie.

Exemples

Les deux exemples de code suivants illustrent l’utilisation de ConvertReference et Convert. Le premier exemple de code utilise ConvertReference dans une Assign activité pour convertir une expression lambda en propriété de chaîne affectée à une valeur. Ensuite, Convert il est appelé pour convertir une expression lambda en valeur de propriété de chaîne imprimée dans la console dans l’activité WriteLine .

// Define a struct with a property named AProperty.
struct StructWithProperty
{
    public string AProperty { get; set; }
}

public static void ConvertReferenceForValueTypePropertyReferenceSample()
{
    // Create a variable of type StructWithProperty to store the property.
    var swpvar = new Variable<StructWithProperty>("swpvar", new StructWithProperty());

    Activity myActivity = new Sequence
    {
        Variables = { swpvar },
        Activities =
        {
            // Create an Assign activity to assign a value to the AProperty property.
            new Assign<string>
            {
                To = ExpressionServices.ConvertReference<string>(ctx => swpvar.Get(ctx).AProperty),
                // Assign a string literal to AProperty.
                Value = "Hello",
            },
            // Print the new property value to the console.
            new WriteLine()
            {
                Text = ExpressionServices.Convert<string>(ctx => swpvar.Get(ctx).AProperty),
            }
        }
    };

    // Invoke the Sequence activity.
    WorkflowInvoker.Invoke(myActivity);
}

L’exemple de code suivant est semblable à celui précédent, sauf que l’expression à convertir est une référence à un élément d’un tableau multidimensionnel.

public static void ConvertReferenceForMultidimensionalArrayItemReferenceSample()
{
    // Create a variable to store a multidimensional array.
    var arrayvar = new Variable<int[,]>("arrayvar", new int[4, 5]);

    Activity myActivity = new Sequence
    {
        Variables = { arrayvar },
        Activities =
        {
            // Create an Assign activity to assign a value to the array item at index [1,2].
            new Assign<int>
            {
                To = ExpressionServices.ConvertReference<int>(ctx => arrayvar.Get(ctx)[1, 2]),
                // Assign an integer value to the array item at row 1 column 2.
                Value = 1,
            },
            // Print the array item value to the console.
            new WriteLine()
            {
                Text = ExpressionServices.Convert<string>(ctx => arrayvar.Get(ctx)[1, 2].ToString()),
            }
        }
    };

    // Invoke the Sequence activity.
    WorkflowInvoker.Invoke(myActivity);
}

Remarques

Les méthodes de conversion dans ExpressionServices lesquelles elles sont conçues pour fonctionner avec des variables et des constantes définies à l’intérieur du flux de travail, ou transmises au flux de travail via des arguments.

S’applique à