2012-04-27 2 views
2

以前に保持されていたWF4アクティビティの具体的なタイプを知らなくても、どのように再開(ロード)できるかを理解しようとしています。永続化されたウィンドウワークフローを再開4具体的なアクティビティの種類を知らないアクティビティ

永続化活動をロードするためには、私は(私が持っている)そのworkflowIdを必要としないだけで、私はあまりにも活動のインスタンスに渡す必要があります - ので、私はそれがタイプだ知っておく必要があります。

var workflowApplication = new WorkflowApplication(activity); // what type is activity? 
workflowApplication.Load(workflowId); 

問題は、このアクティビティが他のアクティビティやワークフロー内で使用されることを意図しています。つまり、メッセージキューにメッセージを送信し、ブックマークしてから続行します。メッセージキューを介して対応するメッセージが受信されたときに再開されますが、永続性データを調べることなく元のワークフローの正確な具体的なタイプがわかりません。これはキャッチ22のようです。アクティビティの種類を知らなくてもワークフローを読み込むことができず、ワークフローを読み込んで永続化されたデータを調べることなく、アクティビティの種類を知ることができません。

私はここで何かが欠けてるような気がします - 活動を知らなくても、ホスティングWorkflowActivityを作成するためのいずれかの方法、またはWorkflowActivityを作成する前にactivityの実際の型を動作するように永続データをリロードする方法はありますか?

答えて

2

WF APIを使用するネイティブサポートはありません。あなた自身の解決策を考え出す必要があります。

最も速いアプローチ:Store Extensibility InstancePromotedPropertiesテーブルを使用して独自のプロパティを保存する。

おそらく、正しいアプローチ:PersistenceIOParticipantが正しい方法であるようです。あなた自身のテーブルを作成して、アクティビティーのタイプを含めたいものを保存してください。

カスタムアクティビティを使用して、どこかで保存してから保存してください。いろいろな理由でそれを行う最良で正しい方法ではありません。

+0

ありがとうございます - 私は自分でこのルートを下り始めました。 –

関連する問題