WCF:为什么在端点而不是服务合同?(WCF: Why is Contract on Endpoin

2019-09-21 02:12发布

想真正“得到”端点合同:

我明白,提供不同的终端来支持不同的绑定,但是当将一个定义N种端点服务,并使用不同的合同? 看来,在大多数情况下(巴IMetadataExchange接口)端点合同将是相同的,无论该协议,不是吗?

如果大部分时间的合同将在所有终端一样,将它已经太简单了(为什么?)来定义父的服务,而不是在每个端点服务合同(似乎累赘/重复),而alllowing的覆盖在端点需要时(如:IMetadataExchange接口)。

感谢您与该让我彻夜难眠,小问题的帮助;-)

Answer 1:

OK,很好-您在定义服务 <service>标签是实际执行的代码-实际的C#或VB.NET线组成的服务。 因此,这是一个具体的类 (甚至可能实现多个服务合同 )。 这仅仅是服务器端。

然而, 终点是在服务器和客户端之间的通信信道,并且在这两个之间,你想分享只有合同- 从来没有任何具体实施该合同的。 端点将永远只能用于单个服务合同-如果您的具体服务实现了多个合同,你需要公开多个端点向客户提供所有的功能。

这是否让事情更清楚一点?



文章来源: WCF: Why is Contract on Endpoint and not on Service?