91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

WCF Stream操作限制實例分析

發布時間:2021-12-15 09:07:30 來源:億速云 閱讀:124 作者:iii 欄目:編程語言

這篇文章主要講解了“WCF Stream操作限制實例分析”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“WCF Stream操作限制實例分析”吧!

WCF支持對Stream對象的操作,尤其對于傳遞size過大的消息而言,如要考慮傳遞消息的效率,WCF推薦通過Stream進行操作。然而,WCF對于Stream操作規定了一些限制,在我們編寫相關程序時,需要特別注意:

1、綁定的限制

如果需要使用Stream操作,可以使用的綁定只能是BasicHttpBinding,NetTcpBinding以及 NetNamedPipeBinding。此外,在使用WCF Stream操作時,不能使用Reliable Messaging。如果考慮到消息安全,則此方式是不可取的。

2、對Stream對象的限制

要作為服務操作所傳遞的消息對象,這樣的對象必須是可序列化的。遺憾的是,FileStream類的定義卻是不支持序列化的,我們能夠使用的Stream對象,包括Stream,MemoryStream等。使用Stream類對象是大多數WCF Stream操作的***。一個有趣的現象是FileStream與Stream類型的轉換。例如在服務契約的操作中,有如下的實現:

public Stream TransferDocument(Document document)  {  FileStream stream = new FileStream  (document.LocalPath, FileMode.Open, FileAccess.Read);  return stream;  }

注意,操作TransferDocument()的返回類型為Stream,而方法的實現中,返回的對象則為FileStream類型。由于Stream類是FileStream類的父類,這樣的實現沒有問題。

然而,在客戶端調用該操作時,卻不能將操作的返回值賦給FileStream類型的對象,如下所示:

FileStream stream = m_service.TransferDocument(doc);

此時獲得的Stream對象則為null。因而,我們只能這樣調用操作:

Stream stream = m_service.TransferDocument(doc);

但是,還有一個奇怪的問題是WCF并不支持Stream對象Length屬性的序列化,也就是說,在客戶端我們不能使用服務操作返回的Stream對象的Length屬性。諸如stream.Length的調用會拋出異常。

感謝各位的閱讀,以上就是“WCF Stream操作限制實例分析”的內容了,經過本文的學習后,相信大家對WCF Stream操作限制實例分析這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

泾源县| 准格尔旗| 什邡市| 内江市| 甘谷县| 称多县| 紫阳县| 兰坪| 枝江市| 长阳| 蓝山县| 晋江市| 鄄城县| 宝山区| 朝阳市| 叶城县| 哈巴河县| 边坝县| 永城市| 沧源| 株洲县| 邳州市| 甘洛县| 顺义区| 老河口市| 靖远县| 佛冈县| 微博| 宜兴市| 长沙县| 赞皇县| 保康县| 防城港市| 安康市| 洛扎县| 乌鲁木齐市| 抚州市| 苍溪县| 湘潭县| 平度市| 宝山区|