实现服务协定

服务是一个类,会在一个或多个终结点公开客户端可用的功能。 要创建服务,请编写一个实现 Windows Communication Foundation (WCF) 协定的类。 可以通过两种方法执行此操作。 可以将协定单独定义为接口,然后创建一个实现该接口的类。 或者,可以通过将 ServiceContractAttribute 属性放在该类本身,将 OperationContractAttribute 属性放在服务的客户端可用的方法上,来直接创建类和协定。

创建服务类

下面的示例是实现已单独定义的 IMath 协定的服务。

// 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; }  
}  

或者,服务可以直接公开协定。 下面的示例是定义和实现 MathService 协定的服务类。

// 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; }  
}  

请注意,上面的服务公开不同的协定,因为协定名称是不同的。 在第一个示例中,公开的协定命名为“IMath”,而在第二个示例中,协定命名为“MathService”。

您可以在服务和操作实现级别设置一些配置,如并发性和实例化。 有关详细信息,请参阅设计和实现服务

在实现服务协定后,必须为该服务创建一个或多个终结点。 有关详细信息,请参阅终结点创建概述。 有关如何运行服务的详细信息,请参阅托管服务

另请参阅