图文演示WCF序列化流程

开发 后端
这里介绍了WCF序列化的概念,还有WCF的客户端和服务端参数传递的过程图,希望大家看过之后会有技术上的提高。

经过长时间积累WCF方面的知识,对它也有一定的认识,在这里分享给大家,看完本文你肯定有不少收获,希望本文能教会你更多东西。知道数据契约的一些概念和特性之后,下面来介绍一下WCF序列化的概念。为什么WCF序列化:我们这里先来介绍一下为什么需要序列化。当然这个不是必须的。只是针对特定的开发平台的数据或者信息类型而言,当一个系统或者说平台需要和别的异构的系统或者平台交互的时候,两个系统需要一个特定的公开的可以公用的行业标准来支持这个数据信息的交互。这里目前来说支持这个数据交互传递的语言载体就是XML.

#T#同样WCF作为面向服务的编程框架,它的目标或者特性之一就是实现服务的跨语言、平台,与不同的服务进行信息数据的交互,而不限制客户端的系统或者开发语言。要实现这个目标,WCF服务首先就是要面对信息的传递与共享问题。我们知道WCF服务和客户端可以传递如Int、String等.NET数据类型。但是如何实现用户自定义复杂类型的跨服务边界的传递,这是一个关键问题。数据契约可以发布为服务的元数据,允许客户端转化为本地语言表示。解决的办法就是封送(Marshaling),将对象封送到其它平台。基于WCF的客户端和服务端参数传递的过程如下图:

WCF序列化


主要步骤:客户端序列化参数为XML信息集--传递->服务端反序列化为本地类型--执行结果->序列化结果为XML信息集--传递->客户端序反序列化返回信息为本地类型。

在WCF分布式开发必备知识(2):.Net Remoting一节中也介绍了.Net Remoting的通信过程 ,两者也有流程也有部分相似之处。对象封送的概念其实.Net Remoting早有涉及,远程对象(RemoteOject),也就是我们远程要访问的对象.首先定义一个Class,继承MarshalByRefObject,可以使用在remoting应用中,支持对象的跨域边界访问。看过.Net Remoting这节文章应该还有点印象,不同之处是WCF的对象封送是为跨越服务边界,.Net Remoting的封送是为了跨越跨域边界。相关的概念请查阅WCF分布式开发必备知识(2):.Net Remoting或者MSDN,都能找到详细的介绍,这里不在详述。

责任编辑:田树 来源: 博客
相关推荐

2009-11-05 14:25:36

WCF Data Co

2009-11-05 09:35:54

WCF体系架构

2009-11-09 15:06:34

WCF序列化

2009-11-09 13:12:14

WCF事物操作

2010-02-23 13:03:34

WCF序列化

2009-12-22 14:31:27

WCF序列化依赖属性

2010-02-22 16:00:22

WCF序列化

2009-12-21 16:52:02

WCF序列化

2010-02-24 17:07:26

WCF序列化引擎

2009-11-06 09:30:35

WCF服务框架

2022-08-06 08:41:18

序列化反序列化Hessian

2011-06-01 15:05:02

序列化反序列化

2009-08-24 17:14:08

C#序列化

2018-03-19 10:20:23

Java序列化反序列化

2011-05-18 15:20:13

XML

2009-08-06 11:16:25

C#序列化和反序列化

2023-12-13 13:49:52

Python序列化模块

2010-02-24 17:41:05

WCF集合反序列化

2009-11-09 16:14:49

WCF服务元数据

2013-03-11 13:55:03

JavaJSON
点赞
收藏

51CTO技术栈公众号