4

動的に読み込まれたワークフローをデバッグしようとしています。そのために、基本的に次の手順を実装しました。

var currentWorkflow = ActivityXamlServices.Load(@"d:\test.xaml");
var wfApp = new WorkflowApplication(currentWorkflow, anyInputs);
wfApp.Run();

ここで、ワークフロー デザイナー内で可能であれば、ワークフローのアクティビティを段階的にデバッグしたいと考えています。MSDNで、[デバッグ] メニューの [ワークフローにブレークポイントを設定する方法]という記事を見つけました。

  1. [デバッグ] メニューで、[新しいブレークポイント] を選択します。

  2. [関数でブレーク] をクリックします。[新しいブレークポイント] ダイアログ ボックスが開きます。

  3. QualifiedActivityId[:[FullClassName][:InstanceId]] という構文を使用して、[関数] テキスト ボックスにアクティビティの名前を指定します。

...

しかし、関数テキスト ボックスでアクティビティの名前を指定する方法と、QualifiedActivityId を取得する方法がわかりません。

誰でも例を挙げることができますか?

もう 1 つの問題は、ルース xaml 内に多くのカスタム アクティビティがあることです。デザイナー内では、 「 XAML でエラーが発生したため、アクティビティを読み込めませんでした」というメッセージが赤いボックスで表示されます。関連するアセンブリをロードして、VS2010 がカスタム アクティビティでルース xaml を表示できるようにする方法はありますか?

4

1 に答える 1

3

次のようにします。

  • XAML を VisualStudio に読み込みます (この場合は d:\test.xaml)。
  • ワークフロー内にブレークポイントを設定します (アクティビティを選択して F9 キーを押すだけです)。
  • VS デバッガー (F5) で wfApp.Run() 行を含むアプリケーションを開始します。
  • アプリケーションが xaml をロードして実行するとすぐに、ブレークポイントがヒットし、WF 変数を調べたり、次のアクティビティにステップ オーバーしたりできます。

アクティビティを名前で指定せずに、クリックして選択するだけです。

現実の世界では、コードを実行するテストケースが常にいくつかあるため、F5 キーではなく、VS2010 の「テスト -> デバッグ -> 現在のコンテキストでテスト」オプションを使用するだけです。カーソルをテスト メソッド内に置き、Ctrl-R Ctrl-T を押します (これがそのアクションの既定のバインディングです)。または、ReSharper がインストールされている場合は、[単体テスト セッション] ウィンドウの [デバッガ] ボタンをクリックできます。

于 2013-05-29T14:19:11.183 に答える