2015-12-03 24 views
0

我一直在使用兩個工作流程。 「OrderWorkflow」是我在「OrderWorkflow」中調用另一個工作流程「OrderWF」的主要工作流程,現在當我加載「OrderWF」時,它顯示錯誤爲''OrderWF'不是'OrderWorkflow'類型。加載此實例時,您必須確保名稱爲「OrderWF」的活動實現「OrderWorkflow」。下面是我的代碼多個工作流程4.5

public static void LoadExistingOrder(
     Guid orderId, string status, string value) 
    {      

     WorkflowApplication app = new WorkflowApplication(new OrderWF()); 

     var store = CreateInstanceStore(); 

     app.InstanceStore = store; 

     app.Completed = (workflowApplicationCompletedEventArgs) => 
     { 
      Console.WriteLine("\nWorkflowApplication has Completed in the {0} state.", workflowApplicationCompletedEventArgs.CompletionState); 
     }; 

     app.Unloaded = (workflowApplicationEventArgs) => 
     { 
      Console.WriteLine("WorkflowApplication has Unloaded\n"); 
     }; 

     app.PersistableIdle = (e) => 
     { 
      return PersistableIdleAction.Unload; 
     }; 


     app.Load(orderId);//getting error here 

     app.ResumeBookmark(status, value); 


    } 

回答

0

我認爲你期待WorkflowApplication.Load(Guid)方法做的事情比它實際做的更多。

.Load(Guid)方法將加載先前持久化的工作流實例重新加載到內存中,然後恢復其流。它不加載其他類型的工作流程,並啓動該工作流程。

基本上你的代碼做什麼,是創建一個workflowapplication對象與OrderWF類型的工作流實例,創建和附加一個商店,並試圖恢復工作流程與給定的GUID值orderId

我懷疑您嘗試恢復的工作流類型爲OrderWorkflow,而不是類型OrderWF