次の方法で共有


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 返すべきではありません。

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

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 応答ヘッダーはデータ サービス ランタイムによって設定されるため、それらを設定する必要はありません。 その他の HTTP 応答ヘッダーは、提供された operationContext を使用して設定できます。

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

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

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

例外の種類 条件
ArgumentNullException entity または operationContextnull の場合。
ArgumentException entity にバイナリ プロパティがない場合。
DataServiceException 有効なストリームを返すことができない場合。

適用対象