【问题标题】:WCF: Why is Contract on Endpoint and not on Service?WCF:为什么合同是在端点上而不是在服务上?
【发布时间】:2012-08-07 07:55:03
【问题描述】:

尝试真正“获得”端点合同:

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

如果大部分时间合同在所有端点上都是相同的,那么在父服务而不是每个端点上定义服务合同是否过于简单(为什么?)(看起来很麻烦/重复),同时允许在需要时覆盖端点(例如:IMetadataExchange)。

感谢您帮助解决让我彻夜难眠的小问题 ;-)

【问题讨论】:

    标签: wcf wcf-endpoint


    【解决方案1】:

    好的,好吧 - 您在 <service> 标记中定义的 服务 是实际的 实现 代码 - 构成服务。因此,它是一个具体类(甚至可能实现多个服务契约)。这只是服务器端。

    端点是服务器和客户端之间的通信通道,在这两者之间,您希望共享合同 - 从不 strong> 该合同的任何具体实施。端点只会用于单个服务契约 - 如果您的具体服务实现多个契约,您需要向客户端公开多个端点以提供所有功能。

    这会让事情变得更清楚吗?

    【讨论】:

    • 很好的答案,马克。谢谢!
    猜你喜欢
    • 1970-01-01
    • 2012-11-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-08-21
    • 1970-01-01
    • 2011-04-04
    相关资源
    最近更新 更多