调用服务时,我的客户端代码传入数据。其中一个数据成员是字节数组,因此 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/