我可以看到WCF中的操作合同在服务合同中
[ServiceContract]
public interface IService1
{
[OperationContract]
string GetData(int value);
[OperationContract]
CompositeType GetDataUsingDataContract(CompositeType composite);
// TODO: Add your service operations here
}
我如何解释两者之间的区别。
答案 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将用于触发对服务的操作。在我们的案例中,这些操作包括:添加/更新/删除/获取学生:操作合同。