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
返すべきではありません。
このインターフェイスのメソッドの実装側では、書き込みストリームを作成するのに 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 または operationContext が null の場合。 |
ArgumentException | entity にバイナリ プロパティがない場合。 |
DataServiceException | 有効なストリームを返すことができない場合。 |
適用対象
.NET