IDataServiceStreamProvider.GetWriteStream Método
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
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.
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. |