WCF中的合同 - 差异

时间:2014-11-30 19:41:35

标签: c# asp.net wcf

我可以看到WCF中的操作合同在服务合同中

[ServiceContract]
public interface IService1
{

    [OperationContract]
    string GetData(int value);

    [OperationContract]
    CompositeType GetDataUsingDataContract(CompositeType composite);

    // TODO: Add your service operations here
}

我如何解释两者之间的区别。

1 个答案:

答案 0 :(得分:0)

两者之间的区别在于操作合同服务合同的一部分。 WCF提供了一种公开Web服务的方式。 服务合同([ServiceContract])是一组可以由客户端使用的操作操作([OperationContract])。 该服务是客户端服务提供商之间共享的内容。 在WCF中,服务契约分离到接口中,以便在服务工作的内部机制和服务定义之间提供一定程度的抽象。因此服务合同是整个服务的定义。 一旦客户端获得服务的远程引用(也称为服务的代理),他就可以调用封装在其中的操作契约之一。 例如,如果您想要一个服务来远程管理一组学生进入数据库,您将创建一个您将称为IStudentManager的接口(这将是您的服务合同)(您可以根据需要调用它)。此接口的操作将定义为Web服务的客户端提供的一组可能性。

[ServiceContract]
public interface IStudentManager
{

    [OperationContract]
    void AddStudent(Student s);

    [OperationContract]
    void DeleteStudent(int studentId);

    [OperationContract]
    void UpdateStudent(int studentId);

    [OperationContract]
    Student GetStudent(int studentId);

    // TODO: You can add other services operations here
}

在这种情况下,客户端将请求服务的远程引用,该服务将通过网络传送给他。从此引用(类型为IStudentManager):ServiceContract将用于触发对服务的操作。在我们的案例中,这些操作包括:添加/更新/删除/获取学生:操作合同。