IDataServiceStreamProvider.GetWriteStream Metoda
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
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.
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 entity
z .
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 operationContext
elementu .
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. |