wcf - 如何防止 WCF 将字节数组自动序列化为 base-64 编码字符串?

标签 wcf serialization bytearray

调用服务时,我的客户端代码传入数据。其中一个数据成员是字节数组,因此 WCF 会在序列化期间自动将其编码为 base-64 字符串。问题是,服务的数据契约需要一个字节数组,而不是一个字符串,因此数据的反序列化将导致异常:Expecting state 'Element'.. Encountered 'Text' with name '',命名空间 ''

我该如何解决这个问题?

最佳答案

我不确定我明白你的意思吗?您的服务契约(Contract)是什么样的?我非常怀疑问题出在 base-64 序列化上,除非您的服务需要以十六进制格式编码的二进制数据。

请记住,您在这里使用的是 XML,因此二进制数据无法在未编码的情况下传输;它需要序列化为可以嵌入到 SOAP 信封中的文本格式(除非您使用的是 MTOM),这通常是 Base-64。

关于wcf - 如何防止 WCF 将字节数组自动序列化为 base-64 编码字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4015620/

相关文章:

c# - 使用/不使用 SSL/TLS 在客户端上验证 wcf 端点的最佳实践

database - 单元测试依赖于数据库的窗口服务

java - JSON 反序列化抛出异常 - 无法从 START_OBJECT token 中反序列化 java.util.ArrayList 的实例

java - 使用 JDom 格式化 XML,每行一个属性

actionscript-3 - 如何从 ActionScript 3 中的缓冲区 (ByteArray/Stream) 播放 MP3 声音?

java - 在 WCF 客户端的 Java Web 服务(或重用类型)之间共享数据契约

serialization - 了解 Ada 如何序列化记录

image - 将 JavaFX Image 对象转换为字节数组

c - 打包两个 8 位值

wcf - 可以使用带有用户名/密码和客户端证书的 WCF STS 吗?