Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/wcf/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
什么类型的序列化在幕后使用Wcf?_Wcf - Fatal编程技术网

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

什么类型的序列化在幕后使用Wcf?,wcf,Wcf,我知道.net中有3种序列化类型: Soap , Xml , Binary. Wcf指示还序列化的DataContract属性。。。但是通过什么 二进制不是-我知道 那么通过哪种机制?指定序列化机制的是为给定端点定义的绑定。例如: basicHttpBinding和wsHttpBinding使用SOAP netTcpBinding使用二进制序列化 webHttpBinding可以使用XML、Json 您可以在上阅读有关不同内置绑定及其属性的更多信息。由于WCF的可扩展性,您当然可以编写自己

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

Soap , Xml , Binary.
Wcf指示还序列化的DataContract属性。。。但是通过什么

二进制不是-我知道


那么通过哪种机制

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

  • basicHttpBinding
    wsHttpBinding
    使用SOAP
  • netTcpBinding
    使用二进制序列化
  • webHttpBinding
    可以使用XML、Json

您可以在上阅读有关不同内置绑定及其属性的更多信息。由于WCF的可扩展性,您当然可以编写自己的自定义绑定。

您将两种技术混为一谈

  • 序列化—对象如何转换为消息—我们有现成的XML和JSON格式化程序(
    DataContractSerializer
    DataContractJsonSerializer
    XmlSerializer
  • 编码-信息如何传输-我们有三个现成的编码器
    • TextMessageEncoder
      -对于作为文本传输的SOAP消息-如果消息版本设置为
      None,则还支持MTOM和POX(纯旧XML)
    • BinaryMessageEncoder
      -用于作为二进制数据传输的XML/SOAP消息
    • WebMessageEncoder
      -用于REST服务中的XML和JSON消息

这些功能由标准绑定使用。WCF支持任意数量的序列化和编码=>您可以自己构建。

是否有二进制序列化的实现?我不希望序列化程序每次发送属性时都传输属性名称?我是否可以在wshttpbinding中指定使用dataContractJsonSerializer?@MichaelFreidgeim:否。wshttpbinding用于Soap服务。Soap不是序列化机制。