代码改变世界

随笔档案-2010年12月20日

WCF 第六章 序列化和编码 使用IExtensibleDataObject 的双向序列化

2010-12-20 17:54 by DanielWise, 711 阅读, 收藏,
摘要: 对支持面向服务的架构来说,数据契约版本化会随着时间推移称为面向服务的一个重要方面。随着时间推移,比如创建了新的服务,它生成了一个数据契约的新版本,通过添加额外的信息。而不是重编译所有之前使用老的数据契约版本的客户端和服务端,你可能希望它们可以平滑的升级以便于可以共享公共数据,这也正是DataContractSerializer 要做的事情。如果有额外的数据,DataContractSerializer 将会抛弃额外的信息。但这并不是在所有情况下都能正常工作。如果数据被接受后又发送回给客户端,忽略任何额外数据意味着可能会丢失信息。一个例子是一个新的客户端发送数据给一个将信息存储在一个数据库中以用 阅读全文

WCF 第六章 编码与序列化 使用NetDataContractSerializer共享类型

2010-12-20 17:33 by DanielWise, 1116 阅读, 收藏,
摘要: WCF 中的默认序列化方法是DataContractSerializer. 这是WCF开发组想要大部分开发人员使用的序列化方法因为它强制进行契约共享而非类型共享。这是创建面向服务架构的一个原则。然而,如果你的想法是支持类型一致并在客户端和服务端间共享类型信息那么这个方法并不会为你的设计引入问题,你可以使用NetDataContractSerializer来序列化。就像在之前的”比较WCF序列化选项”章节描述的那样,NetDataContractSerializer与DataContractSerializer本质是类似的,但是额外支持了类型信息共享和引用保留。 尽管WCF支持NetDataCo 阅读全文