Implementera tjänstkontrakt
En tjänst är en klass som exponerar funktioner som är tillgängliga för klienter på en eller flera slutpunkter. Skapa en tjänst genom att skriva en klass som implementerar ett WCF-kontrakt (Windows Communication Foundation). Du kan göra detta på något av två sätt. Du kan definiera kontraktet separat som ett gränssnitt och sedan skapa en klass som implementerar gränssnittet. Du kan också skapa klassen och kontraktet direkt genom att placera ServiceContractAttribute attributet på själva klassen och OperationContractAttribute attributet på de metoder som är tillgängliga för tjänstens klienter.
Skapa en tjänstklass
Följande är ett exempel på en tjänst som implementerar ett IMath
kontrakt som har definierats separat.
// 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; }
}
En tjänst kan också exponera ett kontrakt direkt. Följande är ett exempel på en tjänstklass som definierar och implementerar ett 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; }
}
Observera att de föregående tjänsterna exponerar olika kontrakt eftersom kontraktsnamnen är olika. I det första fallet heter det exponerade kontraktet "IMath
" medan kontraktet i det andra fallet heter "MathService
".
Du kan ange några saker på tjänst- och åtgärdsimplementeringsnivåer, till exempel samtidighet och instancing. Mer information finns i Designa och implementera tjänster.
När du har implementerat ett tjänstkontrakt måste du skapa en eller flera slutpunkter för tjänsten. Mer information finns i Översikt över skapande av slutpunkter. Mer information om hur du kör en tjänst finns i Värdtjänster.