カスタム アクティビティの作成
基本カスタム アクティビティを作成するには、Activity クラスまたは派生型から継承します。カスタム複合アクティビティを作成するには、CompositeActivity クラスまたは派生型から継承します。
メモ : |
---|
子アクティビティを含むカスタム アクティビティからの継承によってカスタム アクティビティを作成することはできません。 |
作成されるカスタム アクティビティ クラスは、カスタム アクティビティのプロパティ、イベント、および実行ロジックを定義します。
プロパティ
カスタム アクティビティでは、2 種類のアクティビティ プロパティ (メタ プロパティとインスタンス プロパティ) を使用できます。メタ プロパティは実行時では不変になるため、デザイン時にリテラル値を設定する必要があります。インスタンス プロパティはデザイン時に設定するか、インスタンス データにバインドできます。後者の場合、実際の値は実行時まで決まりません。インスタンス プロパティは、ワークフロー実行中に直接変更することもできます。
アクティビティのプロパティの詳細については、「アクティビティ プロパティの使用」を参照してください。
実行ロジック
カスタム プロパティの作成時には、Execute メソッドを介してアクティビティの実行ロジックを明示的に処理する必要があります。アクティビティの必要に応じて、追加の Activity メソッドをオーバーライドすることができます。
属性
どのアクティビティ デザイナを読み込むか、アクティビティ検証時にどのバリデータを使用するか、などを示すさまざまな属性をカスタム アクティビティに追加できます。次の表は、カスタム アクティビティの装飾に使用できるすべての属性の一覧です。
属性 | 説明 |
---|---|
カスタム アクティビティのコンパイル時コードの生成に使われる ActivityCodeGenerator 派生クラスを示します。 |
|
カスタム アクティビティの検証に使用される ActivityValidator 派生クラスを示します。 |
|
アクティビティが代替フローをサポートすることを示します。 |
|
カスタム アクティビティの特定のプロパティのプロパティ名がシリアル化されないことを示します。 |
|
カスタム アクティビティの既定のイベントを示します。 |
|
カスタム アクティビティのデザイン時サービスの実装に使われる ActivityDesigner 派生クラスを示します。 |
|
カスタム アクティビティのデザイナが特定のカテゴリに属することを示します。 |
|
カスタム アクティビティのシリアル化に使用されるシリアライザ (ActivityMarkupSerializer、ActivityCodeDomSerializer、ActivityTypeCodeDomSerializer、CompositeActivityMarkupSerializer、またはこれらのいずれかの派生物) を示します。 |
|
装飾されたアクティビティの実行完了時に現在のワークフロー インスタンスが持続している必要があることを示します。 |
|
カスタム アクティビティのランタイム名を示します。 |
|
カスタム ワークフロー デザイナなどのコンテナ内でカスタム アクティビティを表すためのアイコンを示します。 |
|
カスタム ワークフロー デザイナなどのコンテナ内でカスタム アクティビティと共に使用される ActivityToolboxItem 派生クラスを示します。 |
|
カスタム ワークフロー デザイナなどのコンテナ内でカスタム アクティビティに対して使用されるフィルタ文字列とファイルの種類を示します。 |
注意 : |
---|
カスタム アクティビティで PersistOnCloseAttribute を使用する場合、カスタム アクティビティを使用するワークフローで使用する永続化サービスを指定する必要があります。指定しない場合、ワークフローの開始時に例外がスローされます。 |
属性を「オーバーライド」することができます。つまり、基本アクティビティで使用される属性を使ってカスタム アクティビティを装飾すると、オーバーライドされた値がカスタム アクティビティに対して使用されます。たとえば、カスタム アクティビティ用に独自のツールボックス ビットマップを作成すると同時に、基本アクティビティの既定のシリアライザとアクティビティ バリデータを引き続き使用できます。これを行うには、単に ToolboxItemAttribute を使ってカスタム アクティビティを装飾し、値を適切に設定するだけです。
既定の Windows Workflow Foundation アクティビティからカスタム アクティビティを作成する
次のような種類のアクティビティから、カスタム アクティビティを派生することができます。
アクティビティの種類 | 説明 |
---|---|
Activity |
すべてのアクティビティの派生元である基本型です。 |
ローカル通信時に、ホストに対してメソッドを呼び出します。 |
|
すべての複合アクティビティは、この型から派生します。 |
|
ローカル通信時にホストによって生成される受信イベントを処理します。 |
|
順次実行される一連の子アクティビティを持つカスタム複合アクティビティの作成に使用されます。 |
|
シーケンシャル ワークフローの作成に使用されます。 |
|
特定のステートに関するイベントまたは初期化を処理するためにステート マシン ワークフローで使用されます。 |
|
ステート マシン ワークフローの作成に使用されます。 |
アクティビティのカスタマイズ
特定の機能をカプセル化する、互いに関連するクラスのセットを使用して、カスタム アクティビティの既定のロジックをカスタマイズすることもできます。
以下のセクションでは、次のようなトピックを詳細に説明します。
方法 : カスタム アクティビティを使用してコードを生成する
関連項目
参照
Activity
CompositeActivity
ActivityBind
概念
アクティビティ プロパティの使用
アクティビティ検証ロジックの概要
カスタム アクティビティ デザイナの作成
その他の技術情報
Copyright © 2007 by Microsoft Corporation.All rights reserved.