1

.NET 4 / VS 2010 Beta 2 に同梱されている WorkflowServiceHost の新しいバージョンに関する価値のあるドキュメントを見つけるのに苦労しています。

WorkflowServiceHost の新しいバージョンは System.ServiceModel.Activities に存在し、System.ServiceModel に存在していた古い .NET 3.x バージョンとは異なるコンストラクターを持ちます。

.NET 3.x バージョンで許可されているこの前のコンストラクターのような型を渡して、ワークフローをロードできるようにしたい...

public WorkflowServiceHost(Type workflowType, params Uri[] baseAddress)

私の問題は、他のコンストラクターがコンパイル時に必要とする情報を持っていないことです (私は Type.GetType(string) で実際のワークフロー アクティビティにしかアクセスできないため、ワークフローのタイプを推測することを計画していました)。ランタイム)。

実行時に読み込まれたワークフローをホストできる他の方法はありますか?

事前にご協力いただきありがとうございます:)

4

1 に答える 1

1

WF4 では、実際のワークフロー定義を、以前のように型ではなくアクティビティ ツリーとして渡します。オブジェクトを作成するタイプがある場合、Activator.CreateInstance() のようなものを使用して簡単にする必要があります。型の代わりにアクティビティ ツリーを使用すると、XAML ファイルを読み取るために ActivityXamlServices.Load() を使用してオンザフライでオブジェクトを作成できるため、いくつかの利点があります。

必要に応じて、WorkflowServiceHost の WCF 部分を構成ファイルで完全に実行できます。コンストラクターで baseAddress を渡す必要はありません。

WorkflowServiceHost に代わる方法は、WorkflowApplication を使用することです。ただし、コンストラクターにアクティビティ ツリーを追加する必要があります。

于 2010-01-25T08:56:16.900 に答える