中の技術日誌
 ホーム / 上へ

.NET3.0:WF:CallExternalMethodActivity

2006/12/11

この文書はVisual Studio 2005 TS + Windows Vista RC2 + .NET Framework 3.0 RTMで作成されています。

シーケンシャルワークフローコンソールアプリケーションを作成します。

ワークフローが出ます。

ツールボックスのCallExternalMethodを

ドラッグアンドドロップします。

適当にインターフェイスを作成し、System.Workflow.Activities.ExternalDataExchange属性を付けます。(ここがポイント1!!!)

ついでに実装クラスも作成しておきます。

namespace WorkflowLibrary1
{
    [System.Workflow.Activities.ExternalDataExchange]
    public interface IAdd
    {
        int Add( int x, int y );

    }
    class Class1: IAdd
    {
        #region IAdd メンバ

        public int Add(int x, int y)
        {
            return x + y;
        }

        #endregion
    }
}

アクティビティを選択して、InterfaceTypeで参照ボタンをクリックすると

型の参照と選択ウィンドウが開くので、IAddを選択します。

続いてMethodNameを設定します。

パラメータが自動で出てきます。

xとyと(ReturnValue)を設定するのですが、今回はすべて新規でプロパティを作成しました。

実装クラスの登録を行います。

System.Workflow.Activities.ExternalDataExchangeService edx = new System.Workflow.Activities.ExternalDataExchangeService();
workflowRuntime.AddService(edx);
edx.AddService(new WorkflowLibrary1.Class1());

ここがポイント2!!!

これでOKですが、確認のためのコードを以下のようにしました。

前後にデータセットと、出力用のコードアクティビティを設定して、

private void codeActivity1_ExecuteCode(object sender, EventArgs e)
{
    this.callExternalMethodActivity1_x1 = 10;
    this.callExternalMethodActivity1_y1 = 20;
}

private void codeActivity2_ExecuteCode(object sender, EventArgs e)
{
    Console.WriteLine(this.callExternalMethodActivity1__ReturnValue_1.ToString());
    Console.ReadLine();
}

このようにして実行します。 

以上で、CallExternalMethodActivityが使えます。


勉強会: 01/12 大阪#5, 02/03 東京#4 , 02/10 大阪#6 登録受付中

中の技術日誌
コンテンツ
わんくま同盟
わんくま同盟
わんくま同盟
広告
バナー
MVP LOGO
MSMVP Visual C# Since 2004/04-2007/03
MCP LOGO
070-316
姉妹サイト
姉妹サイト:じゃんぬのC#, VB.NET 入門
じゃんぬの
C#, VB.NET 入門
検索
Google

ブログ本家
広告