共用方式為


IDataServiceStreamProvider.GetWriteStream 方法

定義

傳回資料流,資料服務會使用這個資料流,針對從屬於指定的實體之用戶端接收的媒體資源撰寫二進位資料。

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 值。

checkETagForEquality
Nullable<Boolean>

可為 Null 的 Boolean 值,這個值表示用戶端所要求之並行存取檢查的類型。

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 entityoperationContextnull 時。
ArgumentException entity 沒有二進位屬性時。
DataServiceException 當無法傳回有效的資料流時。

適用於