次の方法で共有


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 値。eTag が If-Match ヘッダーで送信された場合は true。eTag が If-None-Match ヘッダーで送信された場合は false。要求が条件付きではなく、要求に eTag が含まれていなかった場合は nullNULL 参照 (Visual Basic では Nothing)。

戻り値

型: System.IO.Stream
クライアントから受け取ったバイナリ データの内容を書き込むためにデータ サービスで使用される有効な Stream。

説明

GetWriteStream メソッドは、entity に関連付けられているメディア リソースの挿入操作または更新操作が処理されているときにデータ サービス ランタイムによって呼び出されます。

GetWriteStream メソッドが、nullNULL 参照 (Visual Basic では Nothing) 値を返すことはありません。

このインターフェイスのメソッドの実装側では、書き込みストリームを作成するのに HTTP 要求ヘッダーの情報を必要とするため、operationContext が引数として提供されます。 このメソッドを実装する場合は、必要に応じて、同時実行チェックを実行する必要があります。 要求内に If-Match または If-None-Match 要求ヘッダーが含まれていた場合、etag は nullNULL 参照 (Visual Basic では Nothing) にはなりません。 この場合、このメソッドでは適切な同時実行チェックを実行する必要があります。 同時実行チェックに合格した場合、このメソッドは要求されたストリームを返します。 同時実行チェックに失敗した場合、適切な HTTP 応答コードで DataServiceException が発生します。

eTag は、If-Match または If-None-Match ヘッダーの値です。

このメソッドを実装する場合、Content-Type または eTag HTTP 応答ヘッダーはデータ サービス ランタイムによって設定されるため、それらを設定する必要はありません。 その他の HTTP 応答ヘッダーは、提供された operationContext を使用して設定できます。

このメソッドを実装する場合は、正常に応答するために必要な operationContext のプロパティのみを設定する必要があります。 operationContext の他のプロパティを変更すると、データ サービスからの応答が破損することがあります。

すべてのバイトがストリームに正常に書き込まれると、データ サービス ランタイムによってストリームが閉じられます。 ストリームへの書き込み中にエラーが発生した場合は、データ サービスによってクライアントに対するエラー応答が生成されます。

GetWriteStream メソッドを実装する場合は、次のような例外を発生させる必要があります。

例外の種類

条件

ArgumentNullException

entity または operationContext が nullNULL 参照 (Visual Basic では Nothing) の場合。

ArgumentException

entity にバイナリ プロパティがない場合。

DataServiceException

有効なストリームを返すことができない場合。

関連項目

参照

IDataServiceStreamProvider インターフェイス

System.Data.Services.Providers 名前空間