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, mit dem der Datendienst die Binärdaten für die Medienressource schreibt, die von dem zur angegebenen Entität gehörenden Client empfangen wurden.
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 als Teil der HTTP-Anforderung an den Datendienst gesendete eTag-Wert.
Ein Boolean-Wert, der NULL-Werte zulässt und den Typ der Parallelitätsprüfung angibt, der vom Client angefordert wurde.
- operationContext
- DataServiceOperationContext
Die vom Datendienst verwendete DataServiceOperationContext-Instanz zur Verarbeitung der Anforderung.
Gibt zurück
Ein gültiger Stream, mit dem der Datendienst den Inhalt vom Client empfangener Binärdaten schreibt.
Hinweise
Die GetWriteStream-Methode wird von der Datendienstlaufzeit aufgerufen, wenn ein Einfüge- oder Updatevorgang für die Medienressource verarbeitet wird, die der entity
zugeordnet ist.
Die GetWriteStream -Methode sollte niemals einen null
Wert zurückgeben.
Der operationContext
wird als Argument angegeben, da eine Implementierung dieser Schnittstellenmethode Informationen von den HTTP-Anforderungsheadern benötigt, um einen Schreibdatenstrom zu erstellen. Wenn Sie diese Methode implementieren, müssen Sie ggf. Parallelitätsüberprüfungen ausführen. Wenn ein If-Match- oder If-None-Match-Anforderungsheader in der Anforderung enthalten war, ist der etag
nicht null
. In diesem Fall muss diese Methode die entsprechende Parallelitätsüberprüfung ausführen. Wenn die Parallelitätsüberprüfung bestanden wird, gibt diese Methode den angeforderten Datenstrom zurück. Wenn die Parallelitätsüberprüfungen fehlschlagen, löst die Methode eine DataServiceException mit dem entsprechenden HTTP-Antwortcode aus.
eTag
ist der Wert eines If-Match- oder If-None-Match-Headers.
Die folgenden Werte von checkETagForEquality
werden unterstützt:
true
– wenn das eTag einen If-Match-Header darstellt.false
– wenn das eTag einen If-None-Match-Header darstellt.null
– wenn in der Anforderung kein If-Match- oder If-None-Match-Header vorhanden ist.
Wenn Sie diese Methode implementieren, dürfen Sie nicht den Content-Type- oder eTag-HTTP-Antwortheader festlegen, da diese Header von der Datendienstlaufzeit festgelegt werden. Sie können die restlichen HTTP-Antwortheader mit dem bereitgestellten operationContext
festlegen.
Wenn Sie diese Methode implementieren, sollten Sie nur die Eigenschaften für den operationContext
festlegen, die für eine erfolgreiche Antwort erforderlich sind. Durch das Ändern anderer Eigenschaften von 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 an den Client.
Wenn Sie die GetWriteStream-Methode implementieren, sollten die folgenden Ausnahmen entsprechend den angegebenen Bedingungen ausgelöst werden:
Ausnahmetyp | Bedingung |
---|---|
ArgumentNullException | Wenn entity oder operationContext null ist. |
ArgumentException | Wenn entity über keine binäre Eigenschaft verfügt. |
DataServiceException | Wenn kein gültiger Datenstrom zurückgegeben werden kann. |