1.消息基础
在服务协定层上,WCF服务的调用如同调用一般的面向对象类型那样方便,单WCF毕竟是一种需要服务器与客户端双方进行通信的技术。当客户端向服务器发出请求时,首先会访问服务器协定接口中的某个方法,将所需要的输入参数传递给操作方法;然后运行时会把这些输入参数进行序列化,并创建一条SOAP消息,再把输入参数序列化后的内容写入SOAP消息的正文中;随后,通道层会使用特定的通信协议(如HTTP)把消息发送给服务器。
服务器同样是通过通道层接收到客户端发来的SOAP消息,然后读出消息的正文内容;接着将正文的内容进行序列化,就可以得到客户端所传送的输入参数的列表;再把这些参数传递给实现了服务协定接口的服务类,这样就可以调用服务方法了。
不管服务方法是否返回void类型的值,都会向客户端返回一条SOAP消息。首先将服务方法的返回值序列化,然后创建一条SOAP消息,再把序列化的返回值写入消息正文,最后经过通道层发送回客户端。