NativeActivity の基本クラス
NativeActivity はプロテクト コンストラクターを持つ抽象クラスです。 CodeActivity と同様に、NativeActivity は、Execute メソッドを実装して、強制的な動作を記述するときに使用します。 CodeActivity とは異なり、NativeActivity からは、NativeActivityContext メソッドに渡される Execute オブジェクトを介して、ワークフロー ランタイムの公開されているすべての機能にアクセスできます。
NativeActivityContext の使用
ワークフロー ランタイムの機能は、Execute 型の context
パラメーターを使用して、NativeActivityContext メソッド内からアクセスできます。 NativeActivityContext を介して、以下のような機能を使用できます。
引数と変数を取得および設定する。
ScheduleActivity を使用して子のアクティビティのスケジュールを設定する。
Abort を使用してアクティビティの実行を中止する。
CancelChild および CancelChildren を使用して子の実行を取り消す。
CreateBookmark、RemoveBookmark、および ResumeBookmark などのメソッドを使用して、アクティビティのブックマークにアクセスする。
Track を使用したカスタムの追跡機能。
GetProperty および GetValue を使用して、アクティビティの実行プロパティと値プロパティにアクセスする。
ScheduleAction および ScheduleFunc を使用してアクティビティのアクションと機能のスケジュールを設定する。
NativeActivity から継承するカスタム アクティビティを作成するには
Visual Studio 2010 を開きます。
[ファイル] 、 [新規作成] 、 [プロジェクト] の順に選択します。 [プロジェクトの種類] ウィンドウの [Visual C#] の下にある [ワークフロー 4.0] を選択し、 [v2010] ノードを選択します。 [テンプレート] ウィンドウで [アクティビティ ライブラリ] をクリックします。 新しいプロジェクトに HelloActivity という名前を付けます。
HelloActivity プロジェクト内の Activity1.xaml を右クリックして、 [削除] を選択します。
HelloActivity プロジェクトを右クリックして、 [追加] 、 [クラス] の順に選択します。 新しいクラスに HelloActivity.cs という名前を付けます。
HelloActivity.cs ファイルで、次の
using
ディレクティブを追加します。using System.Activities; using System.Activities.Statements;
クラス宣言に基本クラスを追加することにより、新しいクラスで NativeActivity から継承します。
class HelloActivity : NativeActivity
Execute メソッドを追加して、このクラスに機能を追加します。
protected override void Execute(NativeActivityContext context) { Console.WriteLine("Hello World!"); }
CacheMetadata メソッドをオーバーライドして適切な Add メソッドを呼び出し、カスタム アクティビティの変数、引数、子およびデリゲートについてワークフロー ランタイムに通知します。 詳細については、NativeActivityMetadata クラスを参照してください。
NativeActivityContext オブジェクトを使用してブックマークをスケジュールします。 ブックマークを作成、スケジュール、および再開する方法の詳細については、「Bookmarks」を参照してください。
protected override void Execute(NativeActivityContext context) { // Create a Bookmark and wait for it to be resumed. context.CreateBookmark(BookmarkName.Get(context), new BookmarkCallback(OnResumeBookmark)); }
.NET