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

WF 4.0 基礎篇(二):Activity 介紹與 WriteLine 活動詳解

     編輯:關於.NET

前言

Activity 是 WF 核心概念。本文說明 Activity 類別階層、工作流樹狀結構,並以 WriteLine 示範 InArgument<T> 與 VB 運算式用法。

什麼是 Activity

1. Activity Class

System.Activities.Activity 為基底類別,主要派生:

  • CodeActivity:同步執行邏輯
  • AsyncCodeActivity:非同步執行
  • NativeActivity:完整功能(存取排程、追蹤、交易等)

類別階層

2. 工作流中的「節點」

傳統流程圖 = 節點 + 連線;WF 4.0 = 節點 + 節點關係自描述(樹狀結構)。

傳統流程圖 WF流程

常用支節點:Flowchart(圖結構)、Sequence(循序)。葉節點:WriteLine、Assign 等。

WF 4.0 工作流結構:枝葉樹

  • 本質為樹結構:有根、有層次
  • 採枝葉樹:支節點可含支節點/葉節點;葉節點無子節點
  • Flowchart、Sequence 為支節點

WriteLine 活動詳解

  • 繼承 CodeActivity,密封類別
  • Text:InArgument<string> 輸出文字
  • TextWriter:InArgument<TextWriter> 指定輸出目標,預設 Console

WriteLine結構

Text 屬性與 VB 運算式

Text 接收 VB 運算式,格式為 [運算式]。

範例:Text="[String.Format(\"{0}:{1}\", \"wxwinter\", DateTime.Now)]"

設計器

XAML 內容

<WriteLine Text="[String.Format("{0}:{1}", "wxwinter", System.DateTime.Now.ToString())]" />

程式碼執行

WorkflowInvoker.Invoke(new Workflow1());

結果

TextWriter 自訂輸出

public class MyTextWriter : TextWriter
{
    public override Encoding Encoding => Encoding.UTF8;
    public override void WriteLine(string value)
    {
        Console.WriteLine("wxwinter:" + value);
    }
}

XAML:TextWriter="[New WriteLineActivitySample.MyTextWriter()]"

設計器 結果

程式碼方式使用 WriteLine

var activity = new WriteLine();
activity.Text = new InArgument<string>(GetValue("wxd"));
WorkflowInvoker.Invoke(activity);

static string GetValue(string p) => "wxwinter:" + p;

結果

原始碼下載

helloWorkflow.rar | WriteLineActivitySample.rar

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