Partager via


ExpressionServices.ConvertReference<TResult> Méthode

Définition

Convertit une référence à une expression sensible à l’environnement de flux de travail en arborescence d’activité.

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 dans lequel l'expression est convertie.

Paramètres

expression
Expression<Func<ActivityContext,TResult>>

Expression en cours de conversion.

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 activité Assign pour convertir une expression lambda en une propriété de type chaîne à laquelle une valeur est affectée. Convert est ensuite appelé pour convertir une expression lambda en une valeur de propriété de type chaîne imprimée sur 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 au précédent, à cette différence près 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 de ExpressionServices sont conçues pour utiliser les variables et les constantes qui sont définies dans le flux de travail ou passées dans ce dernier via des arguments.

S’applique à