Sdílet prostřednictvím


IDataServiceStreamProvider.GetWriteStream Metoda

Definice

Vrátí datový proud, který datová služba používá k zápisu binárních dat pro prostředek média přijatý od klienta, který patří do zadané entity.

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

Parametry

entity
Object

Entita, která je položkou odkazu na multimédia se souvisejícím prostředkem multimédií.

etag
String

Hodnota eTag, která se odešle jako součást požadavku HTTP odesílaného do datové služby.

checkETagForEquality
Nullable<Boolean>

Hodnota s možnou Boolean hodnotou null, která označuje typ kontroly souběžnosti požadované klientem.

operationContext
DataServiceOperationContext

Instance DataServiceOperationContext , kterou datová služba používá ke zpracování požadavku.

Návraty

Platná Stream datová služba používá k zápisu obsahu binárních dat přijatých od klienta.

Poznámky

Metoda GetWriteStream je volána modulem runtime datové služby při zpracování operace vložení nebo aktualizace pro prostředek média, který je přidružený k objektu entity.

Metoda GetWriteStream by nikdy neměla vracet null hodnotu.

Parametr operationContext je zadán jako argument, protože implementátor této metody rozhraní bude potřebovat informace z hlaviček požadavku HTTP k vytvoření datového proudu zápisu. Při implementaci této metody musíte podle potřeby provést kontroly souběžnosti. Pokud byla v požadavku zahrnuta hlavička požadavku If-Match nebo If-None-Match, etag nebude nullhodnota . V tomto případě musí tato metoda provést odpovídající kontrolu souběžnosti. Pokud kontrola souběžnosti projde, měla by tato metoda vrátit požadovaný datový proud. Pokud kontroly souběžnosti selžou, měla by metoda vyvolat DataServiceException odpovídající kód odpovědi HTTP.

eTag je hodnota hlavičky If-Match nebo If-None-Match.

Podporují se následující hodnoty checkETagForEquality :

  • true – eTag představuje hlavičku If-Match.

  • false – když eTag představuje hlavičku If-None-Match.

  • null – pokud v požadavku není hlavička If-Match nebo If-None-Match.

Při implementaci této metody nesmíte nastavit hlavičky http odpovědi Content-Type nebo eTag, protože jsou nastaveny modulem runtime datové služby. Zbývající hlavičky odpovědi HTTP můžete nastavit pomocí zadaného operationContextobjektu .

Při implementaci této metody byste měli nastavit pouze vlastnosti operationContext , které jsou požadovány pro úspěšnou odpověď. Změna jiných vlastností v systému operationContext může poškodit odpověď z datové služby.

Modul runtime datové služby zavře datový proud, když se do datového proudu úspěšně zapíšou všechny bajty. Pokud při zápisu do datového proudu dojde k chybě, vygeneruje datová služba klientovi chybovou odpověď.

Při implementaci GetWriteStream metody byste měli vyvolat následující výjimky, jak je uvedeno:

Typ výjimky Podmínka
ArgumentNullException Když entity nebo operationContext jsou null.
ArgumentException Když entity nemá binární vlastnost.
DataServiceException Pokud nelze vrátit platný datový proud.

Platí pro