我有一个项目接受 SQL 服务器查询,将此查询传递给执行此查询的 Web 服务,将结果传递回客户端,然后返回DataSet
结果(以及一些其他属性)。目前它使用 WCF 和 SOAP 进行通信。为了减少总请求时间,我试图将其移至 Web API 和 JSON。根据我的概念证明,这将总请求时间减少了大约 30%,考虑到该服务的吞吐量,这非常重要。
我的问题是某些查询(我无法控制)从 SQL Server 中的图像列返回数据。JSON.net 数据表转换器非常乐意将其作为字节数组提取并进行 base64 编码。问题发生在客户端,其中同一个转换器只是获取此值并将其视为字符串,当我的项目的使用者期望它是字节数组时会导致问题。
我以为我可以使用TypeNameHandling.All
序列化程序上的选项,但数据表转换器不希望将类型标记JsonToken.StartObject
作为DataTable
.
鉴于我无法控制正在运行的查询、预期返回的数据类型以及无法控制它们的使用方式,我能做些什么来成功地将字节数组作为数据表的一部分传递JSON.net?