与宿主应用程序通信:实现图书馆预约系统的工作流交互
在开发应用程序时,实现与宿主应用程序的有效通信至关重要。本文将详细介绍如何实现一个图书馆预约系统的工作流,包括消息监听、服务契约实现、工作流定义以及应用程序实现等方面。
1. 消息监听与服务契约
在这个系统中,应用程序需要监听传入的消息并调用或恢复工作流。与传统工作流不同的是,这里没有Receive活动,而是由应用程序直接监听消息。
在图 9 - 6 中,服务器应用程序接收ILibrary.RequestBook消息,客户端应用程序接收ILibrary.RespondToRequest消息,这些是服务契约中的方法。
打开Reservation.cs文件,可看到如下接口定义:
[ServiceContract] public interface ILibraryReservation { [OperationContract] void RequestBook(ReservationRequest request); [OperationContract] void RespondToRequest(ReservationResponse response); }需要对这个契约进行小改动,添加(IsOneWay = true)限定符: