ExpressionServices.ConvertReference<TResult> Metodo

Definizione

Converte un riferimento a un'espressione compatibile con l'ambiente del flusso di lavoro in un albero delle attività.

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))

Parametri di tipo

TResult

Tipo in cui viene convertita l'espressione.

Parametri

expression
Expression<Func<ActivityContext,TResult>>

Espressione da convertire.

Valori restituiti

Activity<Location<TResult>>

Espressione convertita.

Esempio

I due esempi di codice seguenti illustrano l'uso di ConvertReference e Convert. Il primo esempio di codice usa ConvertReference in un'attività Assign per convertire un'espressione lambda in una proprietà stringa a cui è assegnato un valore. Convert Viene quindi chiamato per convertire un'espressione lambda in un valore della proprietà stringa stampato nella console dell'attività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'esempio di codice seguente è simile a quello precedente, ad eccezione del fatto che l'espressione da convertire è un riferimento a un elemento in una matrice multidimensionale.

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);
}

Commenti

I metodi di conversione in ExpressionServices sono progettati per lavorare con variabili e costanti definite all'interno del flusso di lavoro o passate al flusso di lavoro tramite argomenti.

Si applica a