共用方式為


與工作流程服務交談

對話」(Conversation) 是 ReceiveActivitySendActivity 活動的邏輯群組。對話的兩方同時為用戶端和伺服器。永遠會有一對 SendActivityReceiveActivity 活動來實作對話。開始對話的一方會有 SendActivity 活動,隨後為 ReceiveActivity 活動,至於另一方,則會有 ReceiveActivity 活動,隨後為 SendActivity 活動。

對話也是一種將訊息與正確的 ReceiveActivity 活動相互關聯的方法。例如,以文件核准工作流程為例,在此流程中會同時發生 5 個核准。對於每個核准,會有活動 ReceiveActivity 接收核准/拒絕訊息。如果工作流程收到核准訊息,則它必須決定哪一個 ReceiveActivity 活動應取得訊息。這種明確化或相互關聯性是根據對話 ID 完成的。

為了擴充該範例,請考量使用單一工作流程執行個體與兩個貨運公司交談的情形:Contoso 和 Fabrikam。所有接收送至 Contoso 的訊息 (並傳送回覆) 的接收活動都會有對話 ID "Contoso",所有接收來自 Fabrikam 的訊息的活動會有對話 ID "Fabrikam"。

每個對話都必須有擁有活動。對話的「擁有活動」(Owning Activity) 是對話內所有 ReceiveActivity 活動的共同父活動。OwnerActivityName 屬性會參考這個擁有活動,在擁有活動完成執行後,對話會超過範圍。

Bb675243.note(zh-tw,VS.90).gif注意:
狀態機器工作流程中 StateActivity 活動內的 ReceiveActivity 活動,其內容範圍應大於包圍它的 StateActivity 活動,才能參與對話。這是因為 StateActivity 活動每次成為作用中時,便會在不同的內容中繁衍。

請參閱

其他資源

建立工作流程服務和長期服務
Conversations Sample

Copyright © 2007 by Microsoft Corporation.All rights reserved.