IDataServiceStreamProvider.GetWriteStream Methode

Definition

Gibt den Datenstrom zurück, den der Datendienst zum Schreiben der Binärdaten für die vom Client empfangene Medienressource verwendet, die zur angegebenen Entität gehört.

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

Parameter

entity
Object

Die Entität, die ein Medienlinkeintrag mit einer zugehörigen Medienressource ist.

etag
String

Der eTag-Wert, der als Teil der HTTP-Anforderung gesendet wird, die an den Datendienst gesendet wird.

checkETagForEquality
Nullable<Boolean>

Ein nullabler Boolean Wert, der den Typ der vom Client angeforderten Parallelitätsprüfung angibt.

operationContext
DataServiceOperationContext

Die DataServiceOperationContext Instanz, die vom Datendienst zum Verarbeiten der Anforderung verwendet wird.

Gibt zurück

Ein gültiger Stream Datendienst verwendet, um den Inhalt einer vom Client empfangenen Binärdaten zu schreiben.

Hinweise

Die GetWriteStream Methode wird von der Datendienstlaufzeit aufgerufen, wenn ein Einfüge- oder Aktualisierungsvorgang für die Medienressource verarbeitet wird, die dem entityZugeordnet ist.

Die GetWriteStream Methode sollte niemals einen null Wert zurückgeben.

Das operationContext Argument wird als Argument bereitgestellt, da eine Implementierung dieser Schnittstellenmethode Informationen aus den HTTP-Anforderungsheadern benötigt, um einen Schreibdatenstrom zu erstellen. Wenn Sie diese Methode implementieren, müssen Sie bei Bedarf Parallelitätsprüfungen durchführen. Wenn ein If-Match oder Wenn-None-Match Anforderungsheader in der Anforderung enthalten war, ist etagdies null nicht . In diesem Fall muss diese Methode die entsprechende Parallelitätsprüfung durchführen. Wenn die Parallelitätsprüfung übergeben wird, sollte diese Methode den angeforderten Datenstrom zurückgeben. Wenn die Parallelitätsprüfungen fehlschlagen, sollte die Methode eine DataServiceException mit dem entsprechenden HTTP-Antwortcode auslösen.

eTag ist der Wert eines If-Match- oder If-None-Match-Headers.

Die folgenden Werte checkETagForEquality werden unterstützt:

  • true - wenn das eTag eine If-Match Kopfzeile darstellt.

  • false - wenn das eTag eine If-None-Match Kopfzeile darstellt.

  • null - wenn ein If-Match- oder If-None-Match-Header in der Anforderung nicht vorhanden ist.

Wenn Sie diese Methode implementieren, dürfen Sie die Http-Antwortheader vom Typ "Content-Type" oder "eTag" nicht festlegen, da sie von der Datendienstlaufzeit festgelegt werden. Sie können die verbleibenden HTTP-Antwortheader mithilfe der bereitgestellten .operationContext

Wenn Sie diese Methode implementieren, sollten Sie nur die Eigenschaften operationContext festlegen, die für eine erfolgreiche Antwort erforderlich sind. Wenn Sie andere Eigenschaften ändern, operationContext kann die Antwort des Datendiensts beschädigt werden.

Die Datendienstlaufzeit schließt den Datenstrom, wenn alle Bytes erfolgreich in den Datenstrom geschrieben wurden. Wenn beim Schreiben in den Datenstrom ein Fehler auftritt, generiert der Datendienst eine Fehlerantwort für den Client.

Wenn Sie die GetWriteStream Methode implementieren, sollten Sie die folgenden Ausnahmen wie angegeben auslösen:

Ausnahmetyp Zustand
ArgumentNullException Wann entity oder operationContext sind .null
ArgumentException Wenn entity keine binäre Eigenschaft verwendet wird.
DataServiceException Wenn ein gültiger Datenstrom nicht zurückgegeben werden kann.

Gilt für: