ステートマシン(.Net Framework 4.0 Update 1)を使用して特定の問題をモデル化しようとしていますが、実行時にステートマシンに新しい状態を追加できるかどうか疑問に思っていますか?
ストリート構造をステートマシンとしてモデル化したい。ユーザーは、ステートマシンの状態として使用する目的地をマップ上で定義します。
助けて!
ステートマシン(.Net Framework 4.0 Update 1)を使用して特定の問題をモデル化しようとしていますが、実行時にステートマシンに新しい状態を追加できるかどうか疑問に思っていますか?
ストリート構造をステートマシンとしてモデル化したい。ユーザーは、ステートマシンの状態として使用する目的地をマップ上で定義します。
助けて!
ステートマシンを編集してから、その新しいインスタンスを開始する場合は、問題ありません。コードに必要な状態と遷移を追加してから、新しいワークフロー定義を使用して新しいインスタンスを開始します。
すでに実行されているステートマシンの定義を編集する必要がある場合は、動的更新機能(.NET 4.5、現在ベータ版)などを使用する必要があります。
これは@RonJacobsによるブログ投稿で、これをはるかに簡単に実行できるライブラリのプロトタイプを作成しました。これを確認することをお勧めします。
http://blogs.msdn.com/b/rjacobs/archive/2011/06/08/creating-a-state-machine-in-code.aspx
これは、コードでワークフローを作成している彼によるブログ投稿です。ステートマシンはそれほど違いはなく、ルートでさまざまなアクセサーを活用するだけです。
http://blogs.msdn.com/b/rjacobs/archive/2011/06/22/authoring-activities-in-code-or-xaml.aspx
そして、データベースからワークフローをロードする方法を示すもう1つの例があります。