ExpressionServices.ConvertReference<TResult> Méthode
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
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
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.