2011-05-05 62 views
1

我創建一個自定義工作流活動,這些活動有一個基類如下圖所示創建WWF工作流動態地使用XAML + X:名稱不工作

public class BaseClass : SequenceActivity 
{ } 

public class Activity1 : BaseClass 
{ } 

public class Activity2 : BaseClass 
{ } 

然後我寫的工作流程的XOML如圖所示下面

<GS1:Activity1 x:Name="Activity2"></GS1:Activity1> 
<GS1:Activity2 x:Name="Activity3"></GS1:Activity2> 

一切工作正常,直到我要開始工作流程

workflowRuntime.CreateWorkflow(Type.GetType("WorkflowType Full Name"), null, Guid.NewGuid()); 

,我得到下面的錯誤

error 1538: Activity 'BaseClass' validation failed: There is already an activity named 'BaseClass'. Activity names must be unique. 

注意的是,以上是對WF3.5工作正常,當我升級到WF4.0出現此錯誤。

任何幫助非常感謝。

回答

1

看起來你在這裏結合了WF3和WF4類。這有點令人困惑,因爲它們相似,都有一個Activity類,但沒有關係。 WorkflowRuntime是一個WF3類型。使用WF4,您可以使用WorkflowApplication或WorkflowInvoker來運行工作流程。

+0

是的,我仍然在使用WorkflowRuntime。我將檢查WorkflowApplication和WorkflowInvoker。謝謝 – 2011-05-05 11:41:57

+0

我可以使用WorkflowInvoker運行動態工作流程,我的意思是將類型傳遞給WorkflowInvoker – 2011-05-05 11:48:14

+0

您將實例傳遞給WorkflowInvoker。你可以像你想的那樣動態,因爲如果你喜歡,你可以使用ActivityXamlServices.Load()在運行時加載一段XAML。 – Maurice 2011-05-05 11:53:39