ExpressionServices 類別
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
用來將環境感知運算式轉換為活動樹狀結構的轉換 API。
public ref class ExpressionServices abstract sealed
public static class ExpressionServices
type ExpressionServices = class
Public Class ExpressionServices
- 繼承
-
ExpressionServices
範例
下列程式碼範例會呼叫 Convert 來計算索引 0 陣列項目和索引 1 陣列項目的總和。 之後,則會將所產生的和指派給變數,並列印至主控台。
public static void ComputeSumWithConvert()
{
var arrayvar = new Variable<int[]>("arrayvar", new int[] { 1, 2 });
var intvar = new Variable<int>("intvar");
// Use ExpressionServices.Convert() to convert the composite lambda expression
// that represents the sum of array elements at index 0 and 1.
Activity<int> activity1 = ExpressionServices.Convert<int>(ctx => arrayvar.Get(ctx)[0] + arrayvar.Get(ctx)[1]);
Activity seq = new Sequence
{
Variables = { arrayvar, intvar },
Activities =
{
// Get the sum value.
new Assign<int>
{
To = intvar,
Value = activity1,
},
// Print the sum value of 3 to the console.
new WriteLine
{
Text = new InArgument<string>(ctx => intvar.Get(ctx).ToString()),
},
}
};
WorkflowInvoker.Invoke(seq);
}
下列程式碼範例僅供比較。 第二個範例示範如何透過具現化 Add<TLeft,TRight,TResult> 運算式活動的方式計算總和。 以上兩個範例的功能相同,但第二個方法需要較多編碼,不像呼叫 Convert 那樣直接。 因此,建議參考第一個範例。
public static void ComputeSumWithExpressionActivity()
{
var arrayvar = new Variable<int[]>("arrayvar", new int[] { 1, 2 });
var intvar = new Variable<int>("intvar");
// Create an Add activity to compute the sum of array elements at index 0 and 1.
Activity<int> activity1 = new Add<int, int, int>
{
Left = new ArrayItemValue<int>
{
Array = arrayvar,
Index = 0,
},
Right = new ArrayItemValue<int>
{
Array = arrayvar,
Index = 1,
}
};
Activity seq = new Sequence
{
Variables = { arrayvar, intvar },
Activities =
{
// Get the sum value.
new Assign<int>
{
To = intvar,
Value = activity1,
},
// Print the sum value of 3 to the console.
new WriteLine
{
Text = new InArgument<string>(ctx => intvar.Get(ctx).ToString()),
},
}
};
WorkflowInvoker.Invoke(seq);
}
備註
這個類別中的轉換方法會將指定的 Lambda 運算式 (其中可以包含多個子運算式),轉換為由活動階層組成的活動樹狀結構。 強烈建議您使用這些轉換方法,而非直接具現化運算式活動,因為前者提供層級較高的抽象概念,並讓您以更直覺的方式實作工作流程。 如需詳細資訊,請參閱範例。
ExpressionServices 中的轉換方法是設計成使用在工作流程內部定義的變數和常數,或是經由引數傳入工作流程的變數和常數。
方法
Convert<TResult>(Expression<Func<ActivityContext,TResult>>) |
將工作流程環境感知運算式轉換為活動樹狀。 |
ConvertReference<TResult>(Expression<Func<ActivityContext,TResult>>) |
將工作流程環境感知運算式的參考轉換為活動樹狀。 |
TryConvert<TResult>(Expression<Func<ActivityContext,TResult>>, Activity<TResult>) |
將工作流程環境感知運算式轉換為活動樹狀。 |
TryConvertReference<TResult>(Expression<Func<ActivityContext,TResult>>, Activity<Location<TResult>>) |
將工作流程環境感知運算式的參考轉換為活動樹狀。 |