IDataServiceStreamProvider.GetWriteStream Methode
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
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.
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. |