IDataServiceStreamProvider.GetWriteStream Méthode
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
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.
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
Paramètres
- entity
- Object
Entité qui est une entrée de lien multimédia avec une ressource multimédia associée.
- etag
- String
Valeur de l'eTag envoyée dans le cadre de la requête HTTP envoyée au service de données.
Valeur Boolean nullable qui indique le type de contrôle d'accès concurrentiel demandé par le client.
- operationContext
- DataServiceOperationContext
Instance DataServiceOperationContext qui est utilisée par le service de données pour traiter la demande.
Retours
Stream valide que le service de données utilise pour écrire le contenu des données binaires reçues du client.
Remarques
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 à l'entity
.
La GetWriteStream méthode ne doit jamais retourner une null
valeur.
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. Si un en-tête de requête If-Match ou If-None-Match a été inclus dans la demande, le etag
ne sera null
pas . 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.
Les valeurs suivantes de checkETagForEquality
sont prises en charge :
true
- lorsque l’eTag représente un en-tête If-Match.false
- lorsque l’eTag représente un en-tête If-None-Match.null
- lorsqu’un en-tête If-Match ou If-None-Match n’est pas présent dans la demande.
Lorsque vous implémentez cette méthode, vous ne devez pas définir les en-têtes de réponse HTTP Content-Type ou eTag 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 operationContext
fourni.
Lorsque vous implémentez cette méthode, vous devez définir uniquement les propriétés sur operationContext
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 les exceptions suivantes comme indiqué :
Type d'exception | Condition |
---|---|
ArgumentNullException | Lorsque entity ou operationContext est null . |
ArgumentException | Lorsque entity n'a pas de propriété binaire. |
DataServiceException | Lorsqu'un flux de données valide ne peut pas être retourné. |