摘要:
DataContractSerializer是WCF中优先选择的序列化方法。然而,有时你需要使用默认序列化方法以外的方法。一个改变序列化方法的选项是使用XmlSerializer,包括实现自定义序列化的能力,共享类型和支持原有网络服务的能力。对DataContractSerializer,XmlSerializer是WCF集成的一部分。这部分主要查看下XmlSerializer并讨论它如何用来控制XML输出。 DataContractSerialzier总是使用XML元素进行序列化而不是使用XML属性。列表6.31显示了一个使用DataContractSerializer的Employee实例 阅读全文
随笔档案-2010年12月21日
WCF 第六章 序列化和编码 大数据流
2010-12-21 17:19 by DanielWise, 1424 阅读, 收藏, 编辑
摘要:
WCF支持两种消息处理模式: 缓冲和流模式。缓冲是WCF中处理消息的默认模式。在这个模式下,整个消息在发送和接收之前被放入内存中。在大多数场景,缓冲消息是重要的而且有时需要支持一些诸如可信赖消息和数字签名的特性。然而,缓冲大消息将很容易导致系统资源耗尽并限制可扩展性。WCF支持另外一种使用流处理消息的模式。在这个模式中,在客户端和服务端的数据使用一个System.IO.Stream.Streaming。流模式一般在一个绑定或一个传输信道上使用。列表6.29 显示了如何在绑定配置中通过设置transferMode属性在netTcpBinding绑定打开流处理。transferMode属性的可以使 阅读全文
WCF 第六章 序列化和编码 使用代理序列化类型
2010-12-21 14:37 by DanielWise, 799 阅读, 收藏, 编辑
摘要:
有时你可能需要完成一个不可序列化或者需要对序列化内容进行改变的序列化过程。一个例子是由第三方组件提供者提供或者一个你不再拥有源码的组件中的一个类型。下面的例子显示了一个不可序列化的类(查看列表6.26),Employee.这个类故意不生成一个默认构造函数而且它没有任何可写的字段或属性。这意味着它不可使用任何我们到目前为止提到的序列化技术来序列化它。为了序列化这个类我们需要提供一个可以代表序列化类的代理。列表6.26 不可序列化的Employee类 你需要两步来开发一个代理。第一步是定义代表序列化类型的数据契约。第二部是实现一个基于IDataContractSurrogate接口的数据契约代理。 阅读全文