如果我需要通過web服務傳輸文件,byte []數組大小是否反映了要傳輸的字節大小相同?byte []數組的大小是否等於C#中數組的實際大小?
E.G:
byte[] testarray = new byte[100000]
意味着,如果傳送了它的大小將是約100,000字節(100KB)?
謝謝
如果我需要通過web服務傳輸文件,byte []數組大小是否反映了要傳輸的字節大小相同?byte []數組的大小是否等於C#中數組的實際大小?
E.G:
byte[] testarray = new byte[100000]
意味着,如果傳送了它的大小將是約100,000字節(100KB)?
謝謝
沒有太多細節,答案是肯定的。 testarray
是100000計數的字節緩衝區。那就是100000/1024 = 97.6 KiB(該死的你是KB v。KiB SI標準)
是的,只要你不以不同的方式進行編碼。
這取決於你使用什麼協議訪問web服務。如果您使用基於HTTP的SOAP,將會有相當大的開銷,因爲字節數組將以base64字符串形式傳輸。這仍然意味着大小增加8/6,僅略高於130千比特幣。
您可能想使用MTOM進行調查。這將顯着降低開銷。
您可能需要考慮的另一件事是Web服務框架(如WCF)有時具有最大的消息大小。對於默認的WCF配置,該消息會過大。
通常不會,因爲所有的數據都必須被序列化成服務使用的綁定或協議規定的適當格式。
不同的服務技術使用不同的串行器,WCF尤其是高度可配置的。您的數組可以作爲XML片段傳輸,每個數組元素包含一個元素,JSON字符串,舊式SOAP RPC格式,base64字符串或其他。
你應該能夠憑經驗來測試 - 不能那麼難。 – 2010-07-24 13:43:31