ワークフローファウンデーションプロジェクトで作業していますが、問題が発生します。私は自分のプロジェクトについて説明します。
実行するワークフロー名を設定するメインウィンドウがあります。このワークフローを実行するときは、VisualTracking.csクラスを呼び出して、デバッグの場所を確認します。このcsクラスコンストラクターには次のメソッドがあります(WorkflowDesigner wd、string filePath、string name)名前は、メインウィンドウで設定したワークフロー名です。
以前に再ホストされたワークフローで使用するいくつかのカスタムアクティビティを含むdllプロジェクトがあります。これらのアクティビティの1つに、textValueを呼び出すInArgumentがあります。このInArgumentがworkflowname値を取得するようにしたいので、それを行うには、次のコードを実行します。
メインウィンドウ:
......
VisualTracking tracker = new VisualTracking(wd, workflowFilePathName, this.workflowName);
.....
VisualTrackingクラス:
.......
private string workflowName { get; set; }
.......
public VisualTracking(WorkflowDesigner wd,string filePath,string name) {
.......
foreach (Activity v in idActivityMap.Values)
{
string val = v.GetType().FullName;
activityLists.Add(val);
if (v.GetType().FullName == "RulesDll.Status_Activity.StatusActivity")
{
((StatusActivity)v).textValue = this.workflowName;
}
}
........
このforeachで、ワークフローアクティビティごとに、彼の名前空間がワークフロー名を設定するターゲットアクティビティであるかどうかを確認します。
StatusActivity
........
public InArgument<string> textValue;
public InArgument<string> Text
{
get { return this.textValue; }
set { this.textValue = value; }
}
........
protected override void Execute(CodeActivityContext context)
{
...........
string text = context.GetValue(this.Text);
...........
したがって、文字列テキストに、visualtrackingクラスで関連付けたworkflowName値が含まれるようにします。ただし、デバッグするときは、常に値をnullとして取得します。
どんな解決策もありがたいです!!!!!