什么类型的序列化在幕后使用Wcf?

时间:2011-09-03 08:26:32

标签: wcf

我知道.net中有3种类型的序列化:

Soap , Xml , Binary.

Wcf指示了DataContract属性,该属性也序列化......但是通过什么

Binary不是 - 我知道。

那么通过哪种机制

2 个答案:

答案 0 :(得分:16)

为给定端点定义的绑定指定了序列化机制。例如:

  • basicHttpBindingwsHttpBinding使用SOAP
  • netTcpBinding使用二进制序列化
  • webHttpBinding可以使用XML,Json,...

您可以在this article上详细了解不同的内置绑定及其属性。由于WCF的可扩展性,您当然可以编写自己的自定义绑定。

答案 1 :(得分:15)

你把两种技术混在一起。

  • 序列化 - 对象如何转换为消息 - 我们提供开箱即用的XML和JSON格式化程序(DataContractSerializerDataContractJsonSerializerXmlSerializer
  • 编码 - 消息的传输方式 - 我们有三个开箱即用的编码器
    • TextMessageEncoder - 对于作为文本传输的SOAP消息 - 如果消息版本设置为None
    • ,还支持MTOM和POX(普通旧XML)
    • BinaryMessageEncoder - 用于作为二进制数据传输的XML / SOAP消息
    • WebMessageEncoder - 用于REST服务中的XML和JSON消息

这些功能由标准绑定使用。 WCF支持尽可能多的序列化和编码=>你可以建立自己的。