シンプルなアクティビティのIDを取得する方法は不思議でした。例:WF4アクティビティにIdがありません
Sequence s = new Sequence();
string id = s.Id;
idは常にnullであり、プライベートSetterはこの値を設定できません。
どのような状況でこの値はIDで記入されますか?
お返事ありがとうございます。
シンプルなアクティビティのIDを取得する方法は不思議でした。例:WF4アクティビティにIdがありません
Sequence s = new Sequence();
string id = s.Id;
idは常にnullであり、プライベートSetterはこの値を設定できません。
どのような状況でこの値はIDで記入されますか?
お返事ありがとうございます。
IDは、WorkflowDesignerの使用時または実行時に設定されます。ワークフローをロードする方法によっては、WorkflowDesignerで別のフォームを使用できるため、作業するのが難しい場合もあります。
WorkflowInspectionServicesを使用して、ルートアクティビティからアクティビティを一覧表示することができます。 WorkflowInspectionServicesを使用すると、IDが設定されます。このような再帰関数で
:
void WriteActivities(Activity p_activity, int p_offset)
{
Console.WriteLine("{2}Activity : {0}, {3} ({1})", p_activity.Id, p_activity.GetType().Name, new String('-', p_offset), p_activity.DisplayName);
IEnumerable<Activity> l_activities = WorkflowInspectionServices.GetActivities(p_activity);
foreach (Activity l_childActivity in l_activities)
{
WriteActivities(l_childActivity, p_offset + 1);
}
}
Tahnks。 WorkflowDesignerによって作成されるとすぐにアクティビティIDを傍受して取得する可能性はありますか? –