這一篇我把WF中有關數據處理的操作完全交給WCF處理,WF只關心流程的設計處理,至於底層數據如何操 作並不需要關心。這在很大程序上減少了應用程序之間的耦合度。
SendActivity:客戶端活動,用於模擬 WCF 服務操作的同步調用。
在WF中可以利用SendActivity完成對WCF的調用,不需要用傳統的方式,先生成一個WCF代碼,然後調 用相應的方法。在項目中我們觸發外部事件是靠"HandleExternalEvent activity",在事件中寫相關的業 務邏輯代碼,覺的耦合度高了點,因為WF不光要設計工作流,而且需要和數據庫打交道。
解決方案:在HandleExternalEvent activity後面加上一個SendActivity,此時HandleExternalEvent 的事件的唯一作用就是給SendActivity參數賦值。由於項目中的狀態比較多,我展示員工狀態的活動圖:
SendActivity屬性設置:
1:ChannelToken:SendActivity 在建立其自身與客戶端通道之間的關聯時所使用的 ChannelToken。
2:Name:獲取或設置此實例的名稱。此名稱必須符合工作流項目中使用的編程語言的變量命名規則。
3:EndpointName : 用於與服務通信的Endpoint 。
4:ServiceOperationInfo:WCF服務接口。
5:OwnerActivityName :關聯的 Activity 的名稱 。
6:Parameters:方法中的參數。這個參數需要後台代碼支持,這裡分為兩步: