IDataServiceStreamProvider.GetWriteStream 方法
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
傳回資料流,資料服務會使用這個資料流,針對從屬於指定的實體之用戶端接收的媒體資源撰寫二進位資料。
public:
System::IO::Stream ^ GetWriteStream(System::Object ^ entity, System::String ^ etag, Nullable<bool> checkETagForEquality, System::Data::Services::DataServiceOperationContext ^ operationContext);
public System.IO.Stream GetWriteStream (object entity, string etag, bool? checkETagForEquality, System.Data.Services.DataServiceOperationContext operationContext);
abstract member GetWriteStream : obj * string * Nullable<bool> * System.Data.Services.DataServiceOperationContext -> System.IO.Stream
Public Function GetWriteStream (entity As Object, etag As String, checkETagForEquality As Nullable(Of Boolean), operationContext As DataServiceOperationContext) As Stream
參數
- entity
- Object
具有相關媒體資源之媒體連結項目的實體。
- etag
- String
當做 HTTP 要求的一部分傳送至資料服務的 eTag 值。
- operationContext
- DataServiceOperationContext
資料服務用來處理要求的 DataServiceOperationContext 執行個體。
傳回
資料服務所使用的有效 Stream,用來寫入從用戶端接收之二進位資料的內容。
備註
針對與 GetWriteStream 相關聯之媒體資源處理插入或更新作業時,entity
方法是透過資料服務執行階段呼叫。
方法 GetWriteStream 絕對不應該傳回 null
值。
operationContext
是當做引數提供,因為此介面方法的實作者將需要來自 HTTP 要求標頭的資訊,才能建立寫入資料流。 如果您實作此方法,必須在需要時執行並行存取檢查。 如果要求包含 If-Match 或 If-None-Match 要求標頭, 則 etag
不會 null
。 在此情況下,這個方法必須執行適當的並行存取檢查。 如果通過並行存取檢查,此方法應該會傳回要求的資料流。 如果並行存取檢查失敗,此方法應該會引發 DataServiceException,並顯示適當的 HTTP 回應碼。
eTag
是 If-Match 或 If-None-Match 標頭的值。
支援下列 的值 checkETagForEquality
:
true
- 當 eTag 代表 If-Match 標頭時。false
- 當 eTag 代表 If-None-Match 標頭時。null
- 當要求中沒有 If-Match 或 If-None-Match 標頭時。
當您實作此方法時,不得設定 Content-Type 或 eTag HTTP 回應標頭,因為這些標頭是透過資料服務執行階段設定。 您可以使用提供的 operationContext
設定其餘的 HTTP 回應標頭。
當您實作此方法時,僅應針對 operationContext
設定成功回應所需的屬性。 針對 operationContext
變更其他屬性可能會損毀來自資料服務的回應。
將所有位元組成功寫入至資料流時,資料服務執行階段會關閉該資料流。 如果在寫入至資料流時發生錯誤,資料服務會為用戶端產生一個錯誤回應。
當您實作 GetWriteStream 方法時,應該會引發下列例外狀況,如下所示:
例外狀況類型 | 條件 |
---|---|
ArgumentNullException | 當 entity 或 operationContext 為 null 時。 |
ArgumentException | 當 entity 沒有二進位屬性時。 |
DataServiceException | 當無法傳回有效的資料流時。 |