Instrukcje: Tworzenie kontraktu programu Windows Communication Foundation za pomocą klasy
Preferowanym sposobem tworzenia kontraktu programu Windows Communication Foundation (WCF) jest użycie interfejsu. Aby uzyskać więcej informacji, zobacz How to: Define a Service Contract (Instrukcje: definiowanie kontraktu usługi). Alternatywą, opisaną tutaj, jest utworzenie klasy, a następnie zastosowanie ServiceContractAttribute atrybutu do klasy bezpośrednio i OperationContractAttribute atrybutu do każdej z metod w klasie, które są częścią kontraktu.
Ostrzeżenie
[ServiceContract]
i [ServiceContractAttribute]
zrób to samo. To samo dotyczy [OperationContract]
i [OperationContractAttribute]
. W każdym przypadku, pierwszy jest skrótem dla tego drugiego.
Aby uzyskać więcej informacji na temat kontraktów usług, zobacz Projektowanie kontraktów usług.
Tworzenie kontraktu programu Windows Communication Foundation z klasą
Utwórz nową klasę przy użyciu języka Visual Basic, C# lub innego języka uruchomieniowego języka wspólnego.
Zastosuj klasę ServiceContractAttribute do klasy.
Utwórz metody w klasie .
Zastosuj klasę OperationContractAttribute do każdej metody, która musi być uwidoczniona w ramach publicznego kontraktu WCF.
Przykład
Poniższy przykład kodu przedstawia klasę, która definiuje kontrakt usługi.
[ServiceContract]
public class CalculatorService
{
[OperationContract]
public double Add(double n1, double n2)
{
return n1 + n2;
}
[OperationContract]
public double Subtract(double n1, double n2)
{
return n1 - n2;
}
[OperationContract]
public double Multiply(double n1, double n2)
{
return n1 * n2;
}
[OperationContract]
public double Divide(double n1, double n2)
{
return n1 / n2;
}
}
<ServiceContract()> _
Public Class CalculatorService
<OperationContract()> _
Public Function Add(ByVal n1 As Double, ByVal n2 As Double) As Double
Return n1 + n2
End Function
<OperationContract()> _
Public Function Subtract(ByVal n1 As Double, ByVal n2 As Double) As Double
Return n1 - n2
End Function
<OperationContract()> _
Public Function Multiply(ByVal n1 As Double, ByVal n2 As Double) As Double
Return n1 * n2
End Function
<OperationContract()> _
Public Function Divide(ByVal n1 As Double, ByVal n2 As Double) As Double
Return n1 / n2
End Function
End Class
Metody, które mają zastosowaną OperationContractAttribute klasę, domyślnie używają wzorca komunikatu żądania-odpowiedzi. Aby uzyskać więcej informacji na temat tego wzorca komunikatu, zobacz How to: Create a Request-Reply Contract (Instrukcje: tworzenie kontraktu odpowiedzi na żądanie). Można również tworzyć i używać innych wzorców komunikatów, ustawiając właściwości atrybutu. Aby uzyskać więcej przykładów, zobacz How to: Create a One-Way Contract (Instrukcje: tworzenie kontraktu jednokierunkowego) i How to: Create a Duplex Contract (Jak utworzyć kontrakt dwukierunkowy).