IDataServiceStreamProvider.GetWriteStream Method

Returns the stream that the data service uses to write the binary data for the media resource received from the client that belongs to the specified entity.

Namespace:  System.Data.Services.Providers
Assembly:  Microsoft.Data.Services (in Microsoft.Data.Services.dll)

Syntax

'Declaration
Function GetWriteStream ( _
    entity As Object, _
    etag As String, _
    checkETagForEquality As Nullable(Of Boolean), _
    operationContext As DataServiceOperationContext _
) As Stream
'Usage
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

Parameters

  • entity
    Type: System.Object
    The entity that is a media link entry with a related media resource.
  • etag
    Type: System.String
    The eTag value that is sent as part of the HTTP request that is sent to the data service.
  • checkETagForEquality
    Type: System.Nullable<Boolean>
    A nullable Boolean value that determines what kind of conditional request was issued to the data service, which is true when the eTag was sent in an If-Match header, false when the eTag was sent in an If-None-Match header, and nulla null reference (Nothing in Visual Basic) when the request was not conditional and no eTag was included in the request.

Return Value

Type: System.IO.Stream
A valid Stream the data service uses to write the contents of a binary data received from the client.

Remarks

The GetWriteStream method is called by the data service runtime when an insert or update operation is being processed for the media resource that is associated with the entity.

The GetWriteStream method should never return a nulla null reference (Nothing in Visual Basic) value.

The operationContext is supplied as an argument because an implementer of this interface method will need information from the HTTP request headers to create a write stream. When you implement this method, you must perform concurrency checks as needed. If an If-Match or If-None-Match request header was included in the request, the etag will not be nulla null reference (Nothing in Visual Basic). In this case, this method must perform the appropriate concurrency check. If the concurrency check passes, this method should return the requested stream. If the concurrency checks fail, the method should raise a DataServiceException with the appropriate HTTP response code.

eTag is the value of an If-Match or If-None-Match header.

When you implement this method, you must not set the Content-Type or eTag HTTP response headers because they are set by the data service runtime. You may set the remaining HTTP response headers by using the supplied operationContext.

When you implement this method, you should only set the properties on operationContext that are required for a successful response. Changing other properties on operationContext may corrupt the response from the data service.

The data service runtime closes the stream when all bytes have been successfully written to the stream. If an error occurs while writing to the stream, the data service generates an error response to the client.

When you implement the GetWriteStream method, you should raise the following exceptions as indicated:

Exception type

Condition

ArgumentNullException

When entity or operationContext are nulla null reference (Nothing in Visual Basic).

ArgumentException

When entity does not have a binary property.

DataServiceException

When a valid stream cannot be returned.

See Also

Reference

IDataServiceStreamProvider Interface

System.Data.Services.Providers Namespace