Freigeben über


IDataServiceStreamProvider.GetWriteStream-Methode

Gibt den vom Datendienst verwendeten Datenstrom zurück, mit dem die Medienressource geschrieben wird, die vom Client empfangen wurde, der zur angegebenen Entität gehört.

Namespace:  System.Data.Services.Providers
Assembly:  Microsoft.Data.Services (in Microsoft.Data.Services.dll)

Syntax

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

Parameter

  • entity
    Typ: System.Object
    Die Entität, die ein Medienlinkeintrag mit einer verwandten Medienressource ist.
  • etag
    Typ: System.String
    Der als Teil der HTTP-Anforderung an den Datendienst gesendete eTag-Wert.
  • checkETagForEquality
    Typ: System.Nullable<Boolean>
    Ein auf NULL festlegbarer Boolean-Wert, der bestimmt, welche bedingte Anforderung zum Datendienst ausgegeben wurde. Dieser Wert lautet true, wenn das eTag in einem If-Match-Header gesendet wurde, false, wenn das eTag in einem If-None-Match-Header gesendet wurde und nullein NULL-Verweis (Nothing in Visual Basic), wenn die Anforderung nicht bedingt war und kein eTag in der Anforderung enthalten war.

Rückgabewert

Typ: System.IO.Stream
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 Aktualisierungsvorgang für die Medienressource verarbeitet wird, die der entity zugeordnet ist.

Die GetWriteStream-Methode sollte nie einen Nul-Wert zurückgeben.

Der operationContext wird als Argument angegeben, da eine Implementierung dieser Schnittstellenmethode Informationen von den zu erstellenden HTTP-Anforderungs-Headern 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, sollte diese Methode den angeforderten Datenstrom zurückgeben. Wenn die Parallelitätsüberprüfungen fehlschlägt, sollte die Methode einen DataServiceException mit dem entsprechenden HTTP-Antwortcode auslösen.

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

Wenn Sie diese Methode implementieren, müssen Sie die Content-Type- oder eTag-HTTP-Antwortheader nicht festlegen, da sie von der Datendienstlaufzeit festgelegt werden. Sie legen möglicherweise die verbleibenden HTTP-Antwortheader mit dem angegebenen operationContext fest.

Wenn Sie diese Methode implementieren, sollten Sie nur die Eigenschaften für operationContext festlegen, die für eine erfolgreiche Antwort erforderlich ist. Das Ändern anderer Eigenschaften von operationContextkann die die Antwort vom Datendienst beschädigen.

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 Sie die folgenden Ausnahmen auslösen:

Ausnahmetyp

Bedingung

ArgumentNullException

Wenn entity oder operationContext nullein NULL-Verweis (Nothing in Visual Basic) ist.

ArgumentException

Wenn entity nicht über eine binäre Eigenschaft verfügt.

DataServiceException

Wenn ein gültiger Datenstrom nicht zurückgegeben werden kann.

Siehe auch

Verweis

IDataServiceStreamProvider Schnittstelle

System.Data.Services.Providers-Namespace