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

WF 4.0 基礎篇(十三):InvokeMethod 活動完整指南

     編輯:關於.NET

前言

InvokeMethod 是 WF 4.0 中呼叫 .NET 方法的核心活動,支援靜態/實例方法、泛型、params、out/ref 參數及非同步呼叫。本文透過完整範例逐一示範。

核心屬性

屬性類型說明
TargetTypeType靜態方法的類別型別(與 TargetObject 擇一)
TargetObjectInArgument實例方法的物件參考(與 TargetType 擇一)
MethodNamestring方法名稱
ParametersCollection<Argument>方法參數集合,依順序對應
ResultOutArgument方法回傳值
GenericTypeArgumentsCollection<Type>泛型方法的型別參數
RunAsynchronouslybool是否非同步執行

InvokeMethod 結構

範例一:呼叫靜態方法

public class ClassMethod
{
    public static int myMethod(int v1, int v2) => v1 + v2;
}

工作流變數:p1=1、p2=2、r 接收結果。設定 TargetType=ClassMethod、MethodName=myMethod、Parameters=[p1, p2]、Result=r。

工作流設計 執行結果:3

範例二:呼叫實例方法

public class InstanceMethod
{
    public int myMethod(int v1, int v2) => v1 - v2;
}

設定 TargetObject 綁定實例變數,其餘同靜態方法。

工作流設計 執行結果:-1

範例三:params 參數陣列

public class ParamsMethod
{
    public string myMethod(params string[] list)
    {
        var s = "";
        foreach (var item in list) { Console.WriteLine(item); s += item; }
        return s;
    }
}

Parameters 集合直接對應陣列元素,依序加入三個字串變數。

工作流設計 執行結果:wxdlzmlzm

範例四:out 參數

public class OutMethod
{
    public void myMethod(int v1, out int v2) => v2 = v1 * 10;
}

Parameters 中第二個參數 Direction=Out,綁定變數 o 接收輸出值。

工作流設計 執行結果:10

範例五:ref 參數

參數 Direction=In/Out,傳入值並接收修改後的值。

工作流設計 執行結果

範例六:泛型方法

public class GenericMethod
{
    public int myGenericMethod<T1, T2>(T1 v1, T2 v2)
    {
        return int.Parse(v1.ToString()) + int.Parse(v2.ToString());
    }
}

設定 GenericTypeArguments=[Int32, Int32],指定泛型型別參數。

工作流設計 執行結果:30

非同步呼叫

設定 RunAsynchronously=true 可支援非同步方法,詳細內容將在下一篇「Delay 與 WF4 中的執行緒」說明。

原始碼下載

InvokeMethodWorkflow.rar

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