Partager via


Méthode IDataServiceStreamProvider.GetWriteStream

Retourne le flux que le service de données utilise pour écrire les données binaires pour la ressource multimédia reçue du client qui appartient à l'entité spécifiée.

Espace de noms :  System.Data.Services.Providers
Assembly :  Microsoft.Data.Services (en Microsoft.Data.Services.dll)

Syntaxe

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

Paramètres

  • entity
    Type : System.Object
    Entité qui est une entrée de lien multimédia avec une ressource multimédia associée.
  • etag
    Type : System.String
    Valeur de l'eTag envoyée dans le cadre de la requête HTTP envoyée au service de données.
  • checkETagForEquality
    Type : System.Nullable<Boolean>
    Valeur Boolean nullable qui détermine quel type de demande conditionnelle a été publié dans le service de données, qui est true lorsque l'ETAG a été introduit dans un en-tête If-Match, false lorsque l'ETAG a été introduit dans un en-tête If-None-Match, et nullune référence Null (Nothing dans Visual Basic) lorsque la demande n'était pas conditionnelles et qu'aucun ETAG n'y était inclus.

Valeur de retour

Type : System.IO.Stream
Stream valide que le service de données utilise pour écrire le contenu des données binaires reçues du client.

Notes

La méthode GetWriteStream est appelée par le runtime du service de données lorsqu'une opération d'insertion ou de mise à jour est traitée pour la ressource multimédia associée au entity.

La méthode GetWriteStream ne doit jamais retourner une valeur nulle.

Le operationContext est fourni comme argument car un implémenteur de cette méthode d'interface a besoin des informations des en-têtes de demande HTTP pour créer un flux d'écriture. Lorsque vous implémentez cette méthode, vous devez exécuter des contrôles d'accès concurrentiels selon les besoins. leSi un en-tête de demande If-Match ou If-None-Match a été inclus dans la demande, le etag ne sera pas de type nullune référence Null (Nothing dans Visual Basic). Dans ce cas, cette méthode doit exécuter le contrôle d'accès concurrentiel approprié. Si le contrôle d'accès concurrentiel réussit, cette méthode doit retourner le flux de données demandé. Si les contrôles d'accès concurrentiel échouent, la méthode doit déclencher une exception DataServiceException avec le code de réponse HTTP approprié.

eTag est la valeur d'un en-tête If-Match ou If-None-Match.

Lorsque vous implémentez cette méthode, vous ne devez pas définir les en-têtes de réponse Content-Type ou eTag HTTP car ils sont définis par l'exécution du service de données. Vous pouvez définir des en-têtes de réponse HTTP restants à l'aide du operationContextfourni.

Lorsque vous implémentez cette méthode, vous devez uniquement définir des propriétés sur operationContext qui sont requises pour que la réponse soit correcte. Modifier d'autres propriétés sur operationContext peut corrompre la réponse du service de données.

Le runtime du service de données ferme le flux lorsque tous les octets ont été correctement écrits dans le flux. Si une erreur se produit lors de l'écriture dans le flux, le service de données génère une réponse d'erreur pour le client.

Lorsque vous implémentez la méthode GetWriteStream, vous devez lever des exceptions suivantes comme indiqué :

Type d'exception

Condition.

ArgumentNullException

Lorsque entity ou operationContext sont nullune référence Null (Nothing dans Visual Basic).

ArgumentException

Lorsque entity n'a pas de propriété binaire.

DataServiceException

Lorsqu'un flux de données valide ne peut pas être retourné.

Voir aussi

Référence

IDataServiceStreamProvider Interface

Espace de noms System.Data.Services.Providers