使用 WCF Web 服务引用

本文关键字:引用 服务 Web WCF 使用 | 更新日期: 2023-09-27 18:36:28

我以前使用过Web服务并理解这个概念。但是,现在我已经设置了一个 WCF Web 服务,但我对它的使用有疑问。(在教程的设置方式中。

我设置了以下内容:

  • WCF 服务库(称为计算器服务)
  • 服务主机
  • (称为计算器服务主机)
  • Service Proxy
  • (称为 CalculatorServiceProxy,正在使用 ClientBase)
  • 服务客户端
  • (称为计算器服务客户端)

我的理解如下;

  1. 服务库包含可在 Web 服务中使用的服务/对象。假设它是一个带有方法添加的计算器。
  2. 宿主使此类及其函数可供客户端使用。
  3. 代理从客户端向配置的终结点发送和接收消息。
  4. 客户端可以通过代理从服务调用函数。

本教程按如下方式设置代理:

public class MyCalculatorServiceProxy : ClientBase<ICalculator>, ICalculator {
    public int Add(int num1, int num2){
        return base.Channel.Add(num1, num2);
    }
}

这意味着在代理中,我必须至少引用包含 ICalculator 的程序集。如果客户端缺少对同一程序集的引用,则客户端还抱怨没有对接口的引用。

在本教程中,接口和继承接口的类/服务位于同一程序集中。因此,在客户端引用接口的程序集意味着您还可以创建"计算器"类的实例,甚至不需要 WCF 服务来调用函数。

这是否意味着您始终需要两个具有 WCF 服务的程序集。一个带有接口,一个带有类/服务?

如果我错了,或者有人有一些额外的信息/评论,请纠正我。

使用 WCF Web 服务引用

@Tim但我想知道的是,如果您使用 服务合同和实施。为什么要通过 通过代理的网络服务。如果可以立即调用函数 通过其他大会的参考?

如果您这样做,那么而不是让一个服务与您的数据库通信(例如),您就会让该服务的每个可能的客户端与您的数据库通信。到处都有连接字符串。如果需要修改服务代码,则必须将更新部署到更多应用程序。您将失去安全性、可伸缩性和可维护性。

但这非常适合编写单元和集成测试。