Udostępnij za pośrednictwem


IDataServiceStreamProvider.GetWriteStream Metoda

Definicja

Zwraca strumień używany przez usługę danych do zapisywania danych binarnych dla zasobu nośnika otrzymanego od klienta należącego do określonej jednostki.

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

Jednostka, która jest wpisem linku nośnika z powiązanym zasobem multimediów.

etag
String

Wartość elementu eTag, która jest wysyłana jako część żądania HTTP wysyłanego do usługi danych.

checkETagForEquality
Nullable<Boolean>

Wartość dopuszczana Boolean do wartości null wskazująca typ sprawdzania współbieżności żądanego przez klienta.

operationContext
DataServiceOperationContext

DataServiceOperationContext Wystąpienie używane przez usługę danych do przetwarzania żądania.

Zwraca

Prawidłowa Stream usługa danych używa do zapisywania zawartości danych binarnych odebranych od klienta.

Uwagi

Metoda jest wywoływana GetWriteStream przez środowisko uruchomieniowe usługi danych, gdy operacja wstawiania lub aktualizacji jest przetwarzana dla zasobu multimediów skojarzonego entityz .

Metoda GetWriteStream nigdy nie powinna zwracać null wartości.

Element operationContext jest dostarczany jako argument, ponieważ implementator tej metody interfejsu będzie potrzebować informacji z nagłówków żądania HTTP w celu utworzenia strumienia zapisu. Podczas implementowania tej metody należy wykonać testy współbieżności zgodnie z potrzebami. Jeśli nagłówek żądania If-Match lub If-None-Match został uwzględniony w żądaniu, etag element nie będzie mieć wartości null. W takim przypadku ta metoda musi wykonać odpowiednie sprawdzanie współbieżności. Jeśli sprawdzanie współbieżności przebiegnie pomyślnie, ta metoda powinna zwrócić żądany strumień. Jeśli sprawdzanie współbieżności nie powiedzie się, metoda powinna zgłosić DataServiceException element z odpowiednim kodem odpowiedzi HTTP.

eTag jest wartością nagłówka If-Match lub If-None-Match.

Obsługiwane są następujące wartości checkETagForEquality :

  • true — gdy element eTag reprezentuje nagłówek If-Match.

  • false - gdy element eTag reprezentuje nagłówek If-None-Match.

  • null — jeśli nagłówek If-Match lub If-None-Match nie jest obecny w żądaniu.

Podczas implementowania tej metody nie można ustawić nagłówków odpowiedzi HTTP content-type ani eTag, ponieważ są one ustawiane przez środowisko uruchomieniowe usługi danych. Pozostałe nagłówki odpowiedzi HTTP można ustawić przy użyciu podanego operationContextelementu .

Podczas implementowania tej metody należy ustawić tylko właściwości, które operationContext są wymagane dla pomyślnej odpowiedzi. Zmiana innych właściwości w systemie operationContext może spowodować uszkodzenie odpowiedzi z usługi danych.

Środowisko uruchomieniowe usługi danych zamyka strumień, gdy wszystkie bajty zostały pomyślnie zapisane w strumieniu. Jeśli podczas zapisywania strumienia wystąpi błąd, usługa danych generuje odpowiedź błędu na klienta.

Podczas implementowania GetWriteStream metody należy zgłosić następujące wyjątki, jak pokazano:

Typ wyjątku Warunek
ArgumentNullException Gdy entity lub operationContext są .null
ArgumentException Jeśli entity nie ma właściwości binarnej.
DataServiceException Gdy nie można zwrócić prawidłowego strumienia.

Dotyczy