次の方法で共有


カスタム アクティビティの作成

基本カスタム アクティビティを作成するには、Activity クラスまたは派生型から継承します。カスタム複合アクティビティを作成するには、CompositeActivity クラスまたは派生型から継承します。

Noteメモ :

子アクティビティを含むカスタム アクティビティからの継承によってカスタム アクティビティを作成することはできません。

作成されるカスタム アクティビティ クラスは、カスタム アクティビティのプロパティ、イベント、および実行ロジックを定義します。

プロパティ

カスタム アクティビティでは、2 種類のアクティビティ プロパティ (メタ プロパティとインスタンス プロパティ) を使用できます。メタ プロパティは実行時では不変になるため、デザイン時にリテラル値を設定する必要があります。インスタンス プロパティはデザイン時に設定するか、インスタンス データにバインドできます。後者の場合、実際の値は実行時まで決まりません。インスタンス プロパティは、ワークフロー実行中に直接変更することもできます。

アクティビティのプロパティの詳細については、「アクティビティ プロパティの使用」を参照してください。

実行ロジック

カスタム プロパティの作成時には、Execute メソッドを介してアクティビティの実行ロジックを明示的に処理する必要があります。アクティビティの必要に応じて、追加の Activity メソッドをオーバーライドすることができます。

属性

どのアクティビティ デザイナを読み込むか、アクティビティ検証時にどのバリデータを使用するか、などを示すさまざまな属性をカスタム アクティビティに追加できます。次の表は、カスタム アクティビティの装飾に使用できるすべての属性の一覧です。

属性 説明

ActivityCodeGeneratorAttribute

カスタム アクティビティのコンパイル時コードの生成に使われる ActivityCodeGenerator 派生クラスを示します。

ActivityValidatorAttribute

カスタム アクティビティの検証に使用される ActivityValidator 派生クラスを示します。

AlternateFlowActivityAttribute

アクティビティが代替フローをサポートすることを示します。

ContentPropertyAttribute

カスタム アクティビティの特定のプロパティのプロパティ名がシリアル化されないことを示します。

DefaultEventAttribute

カスタム アクティビティの既定のイベントを示します。

DesignerAttribute

カスタム アクティビティのデザイン時サービスの実装に使われる ActivityDesigner 派生クラスを示します。

DesignerCategoryAttribute

カスタム アクティビティのデザイナが特定のカテゴリに属することを示します。

DesignerSerializerAttribute

カスタム アクティビティのシリアル化に使用されるシリアライザ (ActivityMarkupSerializerActivityCodeDomSerializerActivityTypeCodeDomSerializerCompositeActivityMarkupSerializer、またはこれらのいずれかの派生物) を示します。

PersistOnCloseAttribute

装飾されたアクティビティの実行完了時に現在のワークフロー インスタンスが持続している必要があることを示します。

RuntimeNamePropertyAttribute

カスタム アクティビティのランタイム名を示します。

ToolboxBitmapAttribute

カスタム ワークフロー デザイナなどのコンテナ内でカスタム アクティビティを表すためのアイコンを示します。

ToolboxItemAttribute

カスタム ワークフロー デザイナなどのコンテナ内でカスタム アクティビティと共に使用される ActivityToolboxItem 派生クラスを示します。

ToolboxItemFilterAttribute

カスタム ワークフロー デザイナなどのコンテナ内でカスタム アクティビティに対して使用されるフィルタ文字列とファイルの種類を示します。

Caution note注意 :

カスタム アクティビティで PersistOnCloseAttribute を使用する場合、カスタム アクティビティを使用するワークフローで使用する永続化サービスを指定する必要があります。指定しない場合、ワークフローの開始時に例外がスローされます。

属性を「オーバーライド」することができます。つまり、基本アクティビティで使用される属性を使ってカスタム アクティビティを装飾すると、オーバーライドされた値がカスタム アクティビティに対して使用されます。たとえば、カスタム アクティビティ用に独自のツールボックス ビットマップを作成すると同時に、基本アクティビティの既定のシリアライザとアクティビティ バリデータを引き続き使用できます。これを行うには、単に ToolboxItemAttribute を使ってカスタム アクティビティを装飾し、値を適切に設定するだけです。

既定の Windows Workflow Foundation アクティビティからカスタム アクティビティを作成する

次のような種類のアクティビティから、カスタム アクティビティを派生することができます。

アクティビティの種類 説明

Activity

すべてのアクティビティの派生元である基本型です。

CallExternalMethodActivity

ローカル通信時に、ホストに対してメソッドを呼び出します。

CompositeActivity

すべての複合アクティビティは、この型から派生します。

HandleExternalEventActivity

ローカル通信時にホストによって生成される受信イベントを処理します。

SequenceActivity

順次実行される一連の子アクティビティを持つカスタム複合アクティビティの作成に使用されます。

SequentialWorkflowActivity

シーケンシャル ワークフローの作成に使用されます。

StateActivity

特定のステートに関するイベントまたは初期化を処理するためにステート マシン ワークフローで使用されます。

StateMachineWorkflowActivity

ステート マシン ワークフローの作成に使用されます。

アクティビティのカスタマイズ

特定の機能をカプセル化する、互いに関連するクラスのセットを使用して、カスタム アクティビティの既定のロジックをカスタマイズすることもできます。

以下のセクションでは、次のようなトピックを詳細に説明します。

カスタム複合アクティビティの作成

カスタム アクティビティのシリアル化

方法 : カスタム アクティビティを使用してコードを生成する

関連項目

参照

Activity
CompositeActivity
ActivityBind

概念

アクティビティ プロパティの使用
アクティビティ検証ロジックの概要
カスタム アクティビティ デザイナの作成

その他の技術情報

ワークフロー アクティビティの開発

Footer image

Copyright © 2007 by Microsoft Corporation.All rights reserved.