IDataServiceStreamProvider.GetWriteStream Metoda
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
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.
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 null
hodnota . 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 operationContext
objektu .
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. |