IDataServiceStreamProvider.GetWriteStream 方法
傳回資料流,資料服務會使用這個資料流,針對從屬於指定的實體之用戶端接收的媒體資源撰寫二進位資料。
命名空間: System.Data.Services.Providers
組件: Microsoft.Data.Services (在 Microsoft.Data.Services.dll 中)
語法
'宣告
Function GetWriteStream ( _
entity As Object, _
etag As String, _
checkETagForEquality As Nullable(Of Boolean), _
operationContext As DataServiceOperationContext _
) As Stream
'用途
Dim instance As IDataServiceStreamProvider
Dim entity As Object
Dim etag As String
Dim checkETagForEquality As Nullable(Of Boolean)
Dim operationContext As DataServiceOperationContext
Dim returnValue As Stream
returnValue = instance.GetWriteStream(entity, _
etag, checkETagForEquality, operationContext)
Stream GetWriteStream(
Object entity,
string etag,
Nullable<bool> checkETagForEquality,
DataServiceOperationContext operationContext
)
Stream^ GetWriteStream(
Object^ entity,
String^ etag,
Nullable<bool> checkETagForEquality,
DataServiceOperationContext^ operationContext
)
abstract GetWriteStream :
entity:Object *
etag:string *
checkETagForEquality:Nullable<bool> *
operationContext:DataServiceOperationContext -> Stream
function GetWriteStream(
entity : Object,
etag : String,
checkETagForEquality : Nullable<boolean>,
operationContext : DataServiceOperationContext
) : Stream
參數
- entity
型別:System.Object
具有相關媒體資源之媒體連結項目的實體。
- etag
型別:System.String
當做 HTTP 要求的一部分傳送至資料服務的 eTag 值。
- checkETagForEquality
型別:System.Nullable<Boolean>
可為 null 的 Boolean 值,這個值會判斷向資料服務發出的條件式要求種類,以 If-Match 標頭傳送 eTag 時為 true;以 If-None-Match 標頭傳送 eTag 時為 false;非條件式要求且要求中不包含任何 eTag 時則為 nullnull 參考 (在 Visual Basic 中為 Nothing)。
- operationContext
型別:System.Data.Services.DataServiceOperationContext
資料服務用來處理要求的 DataServiceOperationContext 執行個體。
傳回值
型別:System.IO.Stream
資料服務所使用的有效 Stream,用來寫入從用戶端接收之二進位資料的內容。
備註
針對與 entity 相關聯之媒體資源處理插入或更新作業時,GetWriteStream 方法是透過資料服務執行階段呼叫。
GetWriteStream 方法應該永遠不會傳回 nullnull 參考 (在 Visual Basic 中為 Nothing) 值。
operationContext 是當做引數提供,因為此介面方法的實作者將需要來自 HTTP 要求標頭的資訊,才能建立寫入資料流。 如果您實作此方法,必須在需要時執行並行存取檢查。 如果要求中包含 If-Match 或 If-None-Match 要求標頭,etag 將不會是 nullnull 參考 (在 Visual Basic 中為 Nothing)。 在此情況下,這個方法必須執行適當的並行存取檢查。 如果通過並行存取檢查,此方法應該會傳回要求的資料流。 如果並行存取檢查失敗,此方法應該會引發 DataServiceException,並顯示適當的 HTTP 回應碼。
eTag 是 If-Match 或 If-None-Match 標頭的值。
當您實作此方法時,不得設定 Content-Type 或 eTag HTTP 回應標頭,因為這些標頭是透過資料服務執行階段設定。 您可以使用提供的 operationContext 設定其餘的 HTTP 回應標頭。
當您實作此方法時,僅應針對 operationContext 設定成功回應所需的屬性。 針對 operationContext 變更其他屬性可能會損毀來自資料服務的回應。
將所有位元組成功寫入至資料流時,資料服務執行階段會關閉該資料流。 如果在寫入至資料流時發生錯誤,資料服務會為用戶端產生一個錯誤回應。
當您實作 GetWriteStream 方法時,應該會引發下列例外狀況,如下所示:
例外狀況型別 |
條件 |
---|---|
當 entity 或 operationContext 為 nullnull 參考 (在 Visual Basic 中為 Nothing) 時。 |
|
當 entity 沒有二進位屬性時。 |
|
當無法傳回有效的資料流時。 |