我已經接受SQL服務器查詢,通過這個查詢,執行該查詢Web服務的項目,將結果傳遞迴客戶端,然後返回DataSet
結果(以及一些其他屬性)。目前它使用WCF和SOAP進行通信。爲了減少總的請求時間,我試圖將其移至Web API和JSON。根據我的概念證明,這可以將總請求時間縮短約30%,這對於此服務的吞吐量非常重要。反序列化的字節數組柱JSON.net
我的問題是,一些疑問(我卻無法控制)在SQL Server中的圖像列返回數據。 JSON.net數據錶轉換器非常高興地把它當作一個字節數組來進行編碼,而base64對它進行編碼。問題發生在客戶端,同一個轉換器只是簡單地拾取這個值並將其視爲字符串,當我的項目的使用者期望它是一個字節數組時,會引發問題。
我想我可能可以在串行器上使用TypeNameHandling.All
選項,但數據錶轉換器不會獲得類型爲JsonToken.StartObject
的令牌作爲DataTable
正文的一部分。
鑑於我無法控制正在運行的查詢,期望返回哪些數據類型並且不控制它們如何被使用,有什麼我可以做的事情來成功地傳遞一個字節數組作爲一個帶有JSON.net的數據表?
你可以發佈一些示例代碼?一般來說,DataSets/DataTables通過網絡傳輸相當昂貴。您是否考慮過使用DTO(數據傳輸對象)? –
不幸的是,DTO不適合我,我需要能夠支持客戶端可以向我發送的任何SQL查詢(或者至少是其中很大一部分)。 – knightpfhor