3

これは単純な問題のように思えます。一連の質問を通じてユーザーをガイドする WF4 アクティビティがあります。各質問が表示された後、質問に回答するまでアクティビティをアイドル状態にする必要があります。各質問に回答した後、ユーザーに次の質問を促したいと考えています。(前問の回答で次の問題が決まります。)

これを行うために、ブックマークを実装する単純なワークフロー アクティビティがあります。WorkflowApplication.Run を使用してワークフローを実行し、入力を待ってから .ResumeBookmark を呼び出すコンソール アプリがあります。

ワークフローがアイドル状態になったときに、そのワークフローから Current_Question_Text の値を取得する必要があります。WorkflowApplication.Idle プロパティをデリゲートに設定しました。そのデリゲートで、アクティビティ内に保存されている現在の質問のテキストを取得したいと考えています。ただし、Completed メソッドが起動し、WorkflowApplicationIdleEventArgs がデータの現在の状態に関する情報を提供しないまで、出力引数は使用できません。

Idle デリゲートの Activity 変数と WorkflowApplication 変数も調べましたが、その方法でデータにアクセスする方法がわかりません。

アイドル中にアクティビティからデータ値を取得する方法はありますか?

ありがとう、デビッド・バーゲット

4

1 に答える 1

5

これを行うにはいくつかの方法があります。何が最適かは、状況によって異なります。

  1. 変数をデータベースなどの外部の場所に明示的に保存し、クライアントにそこから読み取らせます。カスタム アクティビティを使用すると簡単に実行できますが、アプリケーションに別の切断が追加されます。
  2. ワークフローの永続性とプロパティの昇格を使用して、値を抽出し、ワークフロー インスタンス ストアに格納します。昇格されたプロパティは、操作するのに最適ではなく、WorkflowInstanceStore を使用する必要があります。また、値は、ワークフローが永続化されている場合にのみ更新されます。
  3. カスタム ワークフロー追跡拡張機能を使用し、ActivityStateQuery を使用して値を抽出します。多くの場合、これが最も簡単なアプローチになると思います。
于 2010-04-06T17:16:28.963 に答える