ExpressionServices.ConvertReference<TResult> Methode
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Konvertiert einen Verweis auf einen workflowumgebungsfähigen Ausdruck in eine Aktivitätsstruktur.
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))
Typparameter
- TResult
Der Typ. in den der Ausdruck konvertiert wird.
Parameter
- expression
- Expression<Func<ActivityContext,TResult>>
Der Ausdruck, der konvertiert wird.
Gibt zurück
Der konvertierte Ausdruck.
Beispiele
In den folgenden zwei Codebeispielen wird die Verwendung des ConvertReference-Elements und des Convert-Elements veranschaulicht. Im ersten Codebeispiel wird das ConvertReference-Element in einer Assign
-Aktivität verwendet, um einen Lambda-Ausdruck in eine Zeichenfolgeneigenschaft zu konvertieren, der ein Wert zugewiesen wird. Dann wird das Convert-Element aufgerufen, um einen Lambda-Ausdruck in einen Zeichenfolgeneigenschaftswert zu konvertieren, der in der WriteLine
-Aktivität auf der Konsole ausgegeben wird.
// 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);
}
Das folgende Codebeispiel ähnelt dem vorherigen, nur ist der zu konvertierende Ausdruck ein Verweis auf ein Element in einem mehrdimensionalen Array.
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);
}
Hinweise
Die Konvertierungsmethoden in ExpressionServices dienen zum Arbeiten mit Variablen und Konstanten, die im Workflow definiert sind oder die mittels Argumenten an den Workflow übergeben werden.