WCF:为什么契约在端点上而不是在服务上?

WCF:为什么契约在端点上而不是在服务上?,wcf,wcf-endpoint,Wcf,Wcf Endpoint,尝试真正“获取”端点契约: 我知道提供不同的端点来支持不同的绑定,但是什么时候会为一个服务定义n个端点,并使用不同的契约呢?似乎在大多数情况下(bar IMetadataExchange),无论协议如何,端点契约都是相同的,不是吗 如果大多数情况下,所有端点上的契约都是相同的,那么在父服务上而不是在每个端点上定义服务契约(似乎很麻烦/重复)是否过于简单(为什么?),同时在需要时在端点上进行覆盖(例如:IMetadataExchange) 谢谢你帮我解答那些让我夜不能寐的小问题;-) 好的,那么-

尝试真正“获取”端点契约:

我知道提供不同的端点来支持不同的绑定,但是什么时候会为一个服务定义n个端点,并使用不同的契约呢?似乎在大多数情况下(bar IMetadataExchange),无论协议如何,端点契约都是相同的,不是吗

如果大多数情况下,所有端点上的契约都是相同的,那么在父服务上而不是在每个端点上定义服务契约(似乎很麻烦/重复)是否过于简单(为什么?),同时在需要时在端点上进行覆盖(例如:IMetadataExchange)


谢谢你帮我解答那些让我夜不能寐的小问题;-)

好的,那么-您在
标记中定义的服务就是实际的实现代码-构成服务的实际C#或VB.NET行。因此,它是一个具体的类(甚至可以实现多个服务契约)。这只是服务器端

然而,端点是服务器和客户端之间的通信通道,在这两者之间,您只想共享契约-决不该契约的任何具体实现。端点将仅用于一个单个服务契约-如果您的具体服务实现了多个契约,则需要向客户端公开多个端点以提供所有这些功能


这能让事情更清楚一点吗?

回答得很好,马克。谢谢