首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> .NET 網頁程式設計 >> 關於.NET

WF4.0 基礎篇(20):ActivityWithResult 打造有回傳值的自訂活動

     編輯:關於.NET

ActivityWithResult 是所有有回傳值活動的基類,定義 Result (OutArgument) 與 ResultType (Type) 屬性。實務上無法直接繼承 Activity<TResult> (缺乏 Execute 進入點),需繼承三大具體基類之一:

  • CodeActivity<TResult>:簡單同步運算
  • NativeActivity<TResult>:完整功能 (書籤、排程子活動、追蹤...)
  • AsyncCodeActivity<TResult>:等待非同步操作

繼承階層

CodeActivity<TResult> - 以方法回傳值方式

public sealed class MyCodeActivity : CodeActivity<int>
{
    public InArgument<int> X { get; set; }
    public InArgument<int> Y { get; set; }
    protected override int Execute(CodeActivityContext context)
    {
        return context.GetValue(X) + context.GetValue(Y);
        // 或:context.SetValue(base.Result, x+y); return base.Result.Get(context);
    }
}

流程與結果:流程設計 執行結果 3

NativeActivity<TResult> - 以 Result.Set 方式

public sealed class MyNativeActivity : NativeActivity<int>
{
    public InArgument<int> X { get; set; }
    public InArgument<int> Y { get; set; }
    protected override void Execute(NativeActivityContext context)
    {
        int r = context.GetValue(X) + context.GetValue(Y);
        this.Result.Set(context, r);
    }
}

流程與結果:流程設計 執行結果 3

範例下載:ActivityWithResultSample.rar

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved