OperationContractAttribute.IsOneWay Vlastnost
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í.
Získá nebo nastaví hodnotu, která určuje, zda operace vrací zprávu odpovědi.
public:
property bool IsOneWay { bool get(); void set(bool value); };
public bool IsOneWay { get; set; }
member this.IsOneWay : bool with get, set
Public Property IsOneWay As Boolean
Hodnota vlastnosti
truepokud tato metoda obdrží zprávu požadavku a nevrátí zprávu odpovědi; v opačném případě . false Výchozí hodnota je false.
Příklady
Následující příklad je služba, která implementuje kontrakt služby, který určuje tři operace. Dvě z metod implementují obousměrné operace, které vrací základní zprávy odpovědi volajícímu bez ohledu na to, co je vrácená hodnota. Třetí metoda implementuje operaci, která přijímá volání (podkladová příchozí zpráva), ale nevrací žádnou podkladovou zprávu odpovědi.
[ServiceContract]
public class OneAndTwoWay
{
// The client waits until a response message appears.
[OperationContract]
public int MethodOne (int x, out int y)
{
y = 34;
return 0;
}
// The client waits until an empty response message appears.
[OperationContract]
public void MethodTwo (int x)
{
return;
}
// The client returns as soon as an outbound message
// is queued for dispatch to the service; no response
// message is generated or sent.
[OperationContract(IsOneWay=true)]
public void MethodThree (int x)
{
return;
}
}
Poznámky
IsOneWay Vlastnost slouží k označení, že operace nevrací zprávu odpovědi. Tento typ operace je užitečný pro oznámení nebo komunikaci ve stylu událostí, zejména při obousměrné komunikaci. Bez čekání na podkladovou zprávu odpovědi nemají volající jednosměrné operace žádný přímý způsob, jak zjistit selhání při zpracování zprávy žádosti. (Aplikace služeb, které používají spolehlivé kanály a jednosměrné operace, mohou detekovat selhání doručování zpráv na úrovni kanálu. Podrobnosti najdete v tématu Přehled spolehlivých relací.)
V duplexním (nebo obousměrně) orientovaném aplikacích, ve kterých klient a server vzájemně komunikují nezávisle, může klientský kanál pomocí IsOneWay vlastnosti u svých metod označit, že služba může jednosměrně volat klientovi, že klient může zacházet jako s událostmi. Negeneruje se žádný návratový hovor nebo zpráva, protože služba neočekává žádnou odpověď.
IsOneWay Pokud je vlastnost nastavena na false (výchozí), sudé metody, které vrátí void výsledek ve zprávě odpovědi. V tomto případě infrastruktura vytvoří a odešle prázdnou zprávu, která volajícímu oznámí, že metoda vrátila. (Pomocí tohoto přístupu umožňuje infrastruktuře odesílat chyby PROTOKOLU SOAP zpět klientovi.) true Nastavení IsOneWay je jediným způsobem, jak zrušit vytvoření a odeslání zprávy odpovědi.
Jednosměrné metody nesmí vracet hodnotu nebo mít nebo out parametryref; jinak System.InvalidOperationException se vyvolá výjimka.
Určení, že operace je jednosměrná operace, znamená to, že neexistuje žádná zpráva odpovědi. Je možné blokovat, pokud se připojení nedá vytvořit nebo je odchozí zpráva velmi velká nebo pokud služba nemůže rychle číst příchozí informace. Pokud klient vyžaduje neblokující volání, vygenerujte AsyncPattern operace. Další informace naleznete v tématu One-Way Services a přístup ke službám pomocí klienta WCF.