【问题标题】:Web service call different service implementation classesWeb服务调用不同的服务实现类
【发布时间】:2013-08-22 00:08:31
【问题描述】:

我有几个桌面应用程序现在正在转换为 Web 服务,因此第三方 Web 应用程序可以使用两者的服务。现在两个应用程序的某些模块具有相似的功能,我们真的希望使用相同的接口但不同的实现。

假设服务接口/合同中有一个 getUser(string id) 方法,我是否必须将其更改为 getUser(string id, string appId) 之类的方法?

这是针对 .NET Web 服务的,但我不倾向于 SOAP 或 REST(或 WebAPI)。我不太关心编码部分。

【问题讨论】:

  • appId 代表什么?
  • 您是否只需要运行一个服务端点,或者不同的客户端可以通过不同的 URL 访问服务?
  • @PeterRitchie 我还没有开始编码。我有两种不同的服务实现。因此,我正在考虑使用 appId 之类的东西来区分要执行的实现。
  • @JohnSaunders 没有一个客户端需要两种不同的实现。此外,大多数服务的输入和输出参数将是相同的(除了 appId 之类的参数)。
  • 那么,这两个实现可以使用两个不同的 URL,对吧?

标签: .net web-services


【解决方案1】:

您需要为服务(接口)定义不同的服务端点。这意味着您需要两个不同的接口,而不仅仅是实现。例如,如果您要在 WCF 中创建一个服务,您将定义两个不同的服务,每个服务都有一个不同的端点 (URN),定义如下:

<services>
    <service name="MyService">
        <endpoint address ="http://something"
...</service>
    <service name="MyOtherService">
        <endpoint address = "http://somethingelse"

【讨论】:

    猜你喜欢
    • 2019-11-18
    • 1970-01-01
    • 1970-01-01
    • 2011-02-09
    • 2012-04-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-03-16
    相关资源
    最近更新 更多