Postupy: Vytvoření kontraktu požadavku a odpovědi
Kontrakt žádosti-odpověď určuje metodu, která vrací odpověď. Odpověď musí být odeslána a korelována s žádostí podle podmínek této smlouvy. I když metoda nevrátí odpověď (void
v jazyce C# nebo Sub
v jazyce Visual Basic), infrastruktura vytvoří a odešle volajícímu prázdnou zprávu. Pokud chcete zabránit odesílání prázdné zprávy odpovědi, použijte pro operaci jednosměrný kontrakt.
Vytvoření kontraktu žádosti a odpovědi
Vytvořte rozhraní v programovacím jazyce podle vašeho výběru.
ServiceContractAttribute Použijte atribut na rozhraní.
Použijte atribut pro každou metodu OperationContractAttribute , kterou můžou klienti vyvolat.
Nepovinné. Nastavte hodnotu IsOneWay vlastnosti tak, aby
true
se zabránilo odeslání prázdné zprávy odpovědi. Ve výchozím nastavení jsou všechny operace kontrakty odpovědí na žádosti.
Příklad
Následující ukázka definuje kontrakt pro službu kalkulačky, která poskytuje Add
a Subtract
metody. Metoda Multiply
není součástí kontraktu, protože není označena OperationContractAttribute třídou, a proto není přístupná klientům.
using System.ServiceModel;
[ServiceContract]
public interface ICalculator
{
[OperationContract]
// It would be equivalent to write explicitly:
// [OperationContract(IsOneWay=false)]
int Add(int a, int b);
[OperationContract]
int Subtract(int a, int b);
int Multiply(int a, int b)
}
Další informace o tom, jak určit kontrakty operací, naleznete v OperationContractAttribute třídě a IsOneWay vlastnosti.
Použití ServiceContractAttribute atributů způsobí OperationContractAttribute automatické generování definic kontraktů služeb v dokumentu WSDL (Web Services Description Language) po nasazení služby. Dokument se stáhne připojením
?wsdl
k základní adrese HTTP pro službu. Napříkladhttp://microsoft/CalculatorService?wsdl