0

マーケティングメールを顧客に送信するための複雑なワークフローがあります。誰がどのような種類の電子メールを受け取るかを決定する20のアクティビティのようなものがあります。

私のアクティビティの95%は、バイナリアクティビティライブラリで定義されています。私はビジュアルスタジオでメインのアクティビティを組み立てました。

特定のタイプの顧客の場合、(たとえば)ステップ25aのアクティビティを、ビルド時に定義したものとは異なる動作にする必要があります。データベースでホストされているxamlからアクティビティを読み込むことができます。

1つのオプションは、それらの顧客のワークフロー全体を複製することですが、それは多くのコードの重複です。

ランタイムがアクティビティの検索とマーシャリングに使用するものをすべてオーバーライドして、顧客が左利きの場合、IDEで定義したものの代わりにワークフロー内の1つのアクティビティが置き換えられるようにすることは可能ですか?

mvcでViewEngineをオーバーライドして、iPadビューなどを動的にロードする方法を考えています。読み込みアクティビティに似たものはありますか?

4

2 に答える 2

1

アセンブリにコンパイルされている場合、ワークフロー自体でアクティビティを置き換えることはできません。ただし、使用できるオプションがいくつかあります。

  • ActivityXamlServices.Load() を使用して動的に読み込まれるアクティビティを使用します。XAML は単なる XML であるため、読み込む前に XAML を変更します。
  • 実行時に実際のアクティビティのみをロードし、WorkflowInvoker を使用して実行するワークフローでラッパー アクティビティを使用します。
  • アクティビティと拡張機能を使用して、インテントを実装から分離します。アクティビティは、すべての入力と拡張機能のみを取得し、その関数を呼び出します。実行時に、必要に応じてワークフロー拡張機能の実際の実装を変更できます。
于 2011-05-26T18:04:24.683 に答える
0

良いニュースです... Microsoft.Activities でこれに必要なものを正確に構築しました。詳細については、WF4 How To Invoke a Child Workflow as XAML を参照してください。昨日、子ワークフローの追跡のサポートを追加しました。InvokeWorkflow を使用した子ワークフローの追跡を参照してください。

于 2011-05-27T14:15:50.797 に答える