【问题标题】:How to send byte[] using WCF efficiently如何有效地使用 WCF 发送字节 []
【发布时间】:2010-03-29 14:02:28
【问题描述】:

我需要使用 WCF 服务发送 byte[] 数组,我关心消息大小和性能。我的问题是:WCF 是否在内部将我的二进制数据转换为 Base64 字符串? (我用的是netTcpBinding)如果有,如何防止?

我的合同看起来很简单

IMyService 
{
  byte[] GetData()
}

【问题讨论】:

    标签: wcf performance


    【解决方案1】:

    就实际的 XML 而言,字节数组被序列化为xs:base64Binary,这是一种 Base64 编码(显然)。

    但是,当您指定 netTcpBinding 时,WCF 使用该 XML (BinaryMessageEncodingBindingElement) 的二进制消息编码,它将这些字节编码为二进制流。

    这是一个有点复杂的过程,但归根结底,如果您使用任何 net* 绑定,字节数组将作为原始字节传输,而不是 base64 字符串。如果可以的话,这就是为什么使用 TCP 或命名管道绑定通常更有效的众多原因之一。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-05-26
      • 1970-01-01
      • 1970-01-01
      • 2015-09-19
      • 1970-01-01
      • 1970-01-01
      • 2020-03-28
      相关资源
      最近更新 更多