다음을 통해 공유


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>

클라이언트가 요청한 동시성 검사의 형식을 나타내는 nullable Boolean 값입니다.

operationContext
DataServiceOperationContext

데이터 서비스에서 요청을 처리하는 데 사용되는 DataServiceOperationContext 인스턴스입니다.

반환

데이터 서비스가 클라이언트에서 받은 이진 데이터의 내용을 쓰는 데 사용하는 유효한 Stream입니다.

설명

GetWriteStream 메서드는 entity와 연결된 미디어 리소스에 대한 삽입 또는 업데이트 작업이 처리 중일 때 데이터 서비스 런타임에서 호출됩니다.

GetWriteStream 메서드는 반환 하지는 null 값입니다.

operationContext는 이 인터페이스 메서드의 구현에서 쓰기 스트림을 만들려면 HTTP 요청 헤더의 정보가 필요하므로 인수로 제공됩니다. 이 메서드를 구현하는 경우 필요에 따라 동시성 검사를 수행해야 합니다. If-match 또는 None-If-match 요청 헤더를 요청에 포함 된 경우는 etag 되지 null합니다. 이 경우 이 메서드는 적절한 동시성 검사를 수행해야 합니다. 동시성 검사에 통과한 경우 이 메서드는 요청한 스트림을 반환해야 합니다. 동시성 검사에 실패한 경우 이 메서드는 적절한 HTTP 응답 코드로 DataServiceException을 발생시켜야 합니다.

eTag는 If-Match 또는 If-None-Match 헤더의 값입니다.

다음 값 checkETagForEquality 지원 됩니다.

  • true -때 eTag는 If-match 헤더를 나타냅니다.

  • false -eTag를 None-If-match 헤더를 나타내는 경우.

  • null -If-match 또는 None-If-match 헤더를 요청에 없는 경우.

이 메서드를 구현하는 경우 콘텐츠 형식 또는 eTag HTTP 응답 헤더를 설정해서는 안 됩니다. 콘텐츠 형식 또는 eTag HTTP 응답 헤더는 데이터 서비스 런타임에서 설정됩니다. 나머지 HTTP 응답 헤더는 제공된 operationContext를 사용하여 설정할 수 있습니다.

이 메서드를 구현하는 경우 성공적인 응답에 필요한 operationContext 속성만 설정해야 합니다. operationContext의 다른 속성을 변경하면 데이터 서비스의 응답이 손상될 수 있습니다.

모든 바이트가 스트림에 기록되면 데이터 서비스 런타임에서 스트림을 닫습니다. 스트림에 쓰는 동안 오류가 발생한 경우 데이터 서비스에서 클라이언트에 대한 오류 응답을 생성합니다.

GetWriteStream 메서드를 구현하는 경우 표시된 대로 다음 예외를 발생시켜야 합니다.

예외 종류 조건
ArgumentNullException entity 또는 operationContextnull인 경우
ArgumentException entity에 이진 속성이 없는 경우
DataServiceException 유효한 스트림을 반환할 수 없는 경우

적용 대상