Implementace kontraktů služeb
Služba je třída, která zveřejňuje funkce dostupné klientům v jednom nebo více koncových bodech. Pokud chcete vytvořit službu, napište třídu, která implementuje kontrakt WCF (Windows Communication Foundation). Můžete to udělat dvěma způsoby. Kontrakt můžete definovat samostatně jako rozhraní a pak vytvořit třídu, která implementuje toto rozhraní. Alternativně můžete vytvořit třídu a kontrakt přímo tak, že umístíte ServiceContractAttribute atribut na samotnou třídu a OperationContractAttribute atribut na metody dostupné klientům služby.
Vytvoření třídy služby
Následuje příklad služby, která implementuje IMath
kontrakt, který byl definován samostatně.
// Define the IMath contract.
[ServiceContract]
public interface IMath
{
[OperationContract]
double Add(double A, double B);
[OperationContract]
double Multiply (double A, double B);
}
// Implement the IMath contract in the MathService class.
public class MathService : IMath
{
public double Add (double A, double B) { return A + B; }
public double Multiply (double A, double B) { return A * B; }
}
Případně může služba zveřejnit smlouvu přímo. Následuje příklad třídy služby, která definuje a implementuje MathService
kontrakt.
// Define the MathService contract directly on the service class.
[ServiceContract]
class MathService
{
[OperationContract]
public double Add(double A, double B) { return A + B; }
[OperationContract]
private double Multiply (double A, double B) { return A * B; }
}
Všimněte si, že předchozí služby zveřejňují různé kontrakty, protože názvy kontraktů se liší. V prvním případě se vystavená smlouva jmenuje "IMath
", zatímco v druhém případě má kontrakt název "MathService
".
Na úrovni implementace služby a operace můžete nastavit několik věcí, jako je souběžnost a vytváření instancí. Další informace naleznete v tématu Návrh a implementace služeb.
Po implementaci kontraktu služby musíte pro službu vytvořit jeden nebo více koncových bodů. Další informace najdete v tématu Přehled vytváření koncových bodů. Další informace o tom, jak spustit službu, naleznete v tématu Hostitelské služby.