Compartir a través de


IDataServiceStreamProvider.GetWriteStream Método

Definición

Devuelve el flujo que el servicio de datos utiliza para escribir los datos binarios del recurso multimedia recibido del cliente que pertenece a la entidad especificada.

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

Parámetros

entity
Object

La entidad que es una entrada de vínculo multimedia con un recurso multimedia relacionado.

etag
String

El valor eTag que se envía como parte de la solicitud HTTP que se envía al servicio de datos.

checkETagForEquality
Nullable<Boolean>

Valor Boolean que acepta valores NULL y que indica el tipo de comprobación de simultaneidad que el cliente ha solicitado.

operationContext
DataServiceOperationContext

La instancia de DataServiceOperationContext utilizada por el servicio de datos para procesar la solicitud.

Devoluciones

Un Stream válido que el servicio de datos utiliza para escribir el contenido de los datos binarios recibidos del cliente.

Comentarios

El tiempo de ejecución del servicio de datos llama al método GetWriteStream cuando se está procesando una operación de inserción o de actualización para el recurso multimedia que está asociado a entity.

El GetWriteStream método nunca debe devolver un null valor.

operationContext se proporciona como un argumento porque un implementador de este método de interfaz necesitará información de los encabezados de solicitud HTTP para crear un flujo de escritura. Al implementar este método, debe realizar comprobaciones de simultaneidad según sea necesario. Si se incluyó un encabezado de solicitud de If-Match o If-None-Match en la solicitud, no etag será null. En este caso, este método debe realizar la comprobación de simultaneidad adecuada. Si se aprueba la comprobación de simultaneidad, este método debería devolver el flujo solicitado. Si no se supera la comprobación de simultaneidad, el método debería generar una DataServiceException con el código de respuesta HTTP adecuado.

eTag es el valor de un encabezado If-Match o If-None-Match.

Se admiten los siguientes valores de checkETagForEquality :

  • true : cuando eTag representa un encabezado de If-Match.

  • false : cuando la eTag representa un encabezado If-None-Match.

  • null - cuando un encabezado If-Match o If-None-Match no está presente en la solicitud.

Al implementar este método, no debe establecer los encabezados de respuesta HTTP Content-Type o eTag porque los establece el tiempo de ejecución del servicio de datos. Puede establecer los encabezados de respuesta HTTP restantes utilizando el operationContext proporcionado.

Al implementar este método, solo debe establecer las propiedades en operationContext que sean necesarias para una respuesta correcta. Cambiar otras propiedades en operationContext puede dañar la respuesta del servicio de datos.

El tiempo de ejecución del servicio de datos cierra el flujo cuando todos los bytes se han escrito correctamente en el flujo. Si se produce un error escribiendo en el flujo, el servicio de datos genera una respuesta de error al cliente.

Al implementar el método GetWriteStream, debería generar las siguientes excepciones como se indica:

Tipo de excepción Condición
ArgumentNullException Cuando entity o operationContext son null.
ArgumentException Cuando entity no tiene una propiedad binaria.
DataServiceException Cuando no se puede devolver un flujo válido.

Se aplica a