我正在使用WCF返回從Linq從SQL Server返回的複雜對象的列表。WCF服務大Linq響應
我想返回約16個屬性的對象列表和2個其他複雜類型的引用(每個約8個屬性)。
我在小提琴手中看到每個對象返回(當序列化爲XML時)大約是5KB,當我嘗試返回完整列表(900項)時,大約是3MB!
這是正常的嗎?有沒有其他方法可以將數據序列化爲輕量級格式?
在此先感謝!
我正在使用WCF返回從Linq從SQL Server返回的複雜對象的列表。WCF服務大Linq響應
我想返回約16個屬性的對象列表和2個其他複雜類型的引用(每個約8個屬性)。
我在小提琴手中看到每個對象返回(當序列化爲XML時)大約是5KB,當我嘗試返回完整列表(900項)時,大約是3MB!
這是正常的嗎?有沒有其他方法可以將數據序列化爲輕量級格式?
在此先感謝!
查找到NetTcpBinding如果這是可能對你來說,這將減少網絡流量非常相比,XML序列化
XML非常冗長,而且大小並沒有真正讓我感到吃驚(把你的列表的大小成考慮 - 如果你問我,900件物品太多了)。
如果你需要「打包」你的數據,我建議序列化你的對象到JSON,因爲這會消除很多冗長。有一個內置的JSON Serialization mechanism,所以你應該能夠開始非常快。我唯一遇到的問題是DateTime字段,它有時會與內置的JSON序列化程序錯誤,但有解決方法。
但是這也意味着需要在兩端完成一些工作。 Serverside,如果您願意,您需要將您的實體轉換爲某種傳輸實體或DTO。在客戶端,您無法立即與這些數據一起工作,但需要先將數據反序列化,然後從那裏重新構建數據模型。
你想要在發送的對象中打包一個「DTO Info」,這樣你的客戶端就能知道它正在接收的數據包會發生什麼。就像,已經序列化了哪種類型,等等。
有多種序列化數據的方式,例如CSV,JSON,但這取決於您需要提供給服務使用者的內容?你能減少你製作的清單的大小嗎? 900條記錄似乎很多。 – Paddy
是的,我認爲我可以將頁面添加到結果中,但我需要在一頁中加載完整的數據網格8-) – zapico
嗯,它可能只是我,但我可以想到幾次使用100+一排排網格是一個好主意...... – Paddy