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)입니다.
- operationContext
유형: System.Data.Services.DataServiceOperationContext
데이터 서비스에서 요청을 처리하는 데 사용되는 DataServiceOperationContext 인스턴스입니다.
반환 값
유형: System.IO.Stream
데이터 서비스가 클라이언트에서 받은 이진 데이터의 내용을 쓰는 데 사용하는 유효한 Stream입니다.
주의
GetWriteStream 메서드는 entity와 연결된 미디어 리소스에 대한 삽입 또는 업데이트 작업이 처리 중일 때 데이터 서비스 런타임에서 호출됩니다.
GetWriteStream 메서드는 nullnull 참조(Visual Basic에서는 Nothing) 값을 반환하지 않아야 합니다.
operationContext는 이 인터페이스 메서드의 구현에서 쓰기 스트림을 만들려면 HTTP 요청 헤더의 정보가 필요하므로 인수로 제공됩니다. 이 메서드를 구현하는 경우 필요에 따라 동시성 검사를 수행해야 합니다. If-Match 또는 If-None-Match 요청 헤더가 요청에 포함된 경우 etag는 nullnull 참조(Visual Basic에서는 Nothing)이 아닙니다. 이 경우 이 메서드는 적절한 동시성 검사를 수행해야 합니다. 동시성 검사에 통과한 경우 이 메서드는 요청한 스트림을 반환해야 합니다. 동시성 검사에 실패한 경우 이 메서드는 적절한 HTTP 응답 코드로 DataServiceException을 발생시켜야 합니다.
eTag는 If-Match 또는 If-None-Match 헤더의 값입니다.
이 메서드를 구현하는 경우 콘텐츠 형식 또는 eTag HTTP 응답 헤더를 설정해서는 안 됩니다. 콘텐츠 형식 또는 eTag HTTP 응답 헤더는 데이터 서비스 런타임에서 설정됩니다. 나머지 HTTP 응답 헤더는 제공된 operationContext를 사용하여 설정할 수 있습니다.
이 메서드를 구현하는 경우 성공적인 응답에 필요한 operationContext 속성만 설정해야 합니다. operationContext의 다른 속성을 변경하면 데이터 서비스의 응답이 손상될 수 있습니다.
모든 바이트가 스트림에 기록되면 데이터 서비스 런타임에서 스트림을 닫습니다. 스트림에 쓰는 동안 오류가 발생한 경우 데이터 서비스에서 클라이언트에 대한 오류 응답을 생성합니다.
GetWriteStream 메서드를 구현하는 경우 표시된 대로 다음 예외를 발생시켜야 합니다.
예외 형식 |
조건 |
---|---|
entity 또는 operationContext가 nullnull 참조(Visual Basic에서는 Nothing)인 경우 |
|
entity에 이진 속성이 없는 경우 |
|
유효한 스트림을 반환할 수 없는 경우 |