首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >WCF WCF服务的引用

WCF WCF服务的引用
EN

Stack Overflow用户
提问于 2016-02-27 20:20:28
回答 1查看 42关注 0票数 0

我以前使用过网络服务,并且理解这个概念.然而,现在我已经建立了一个Webservice,但是我对它的使用有一个疑问。(如何设置教程。)

我有以下设置:

  • WCF服务库(称为CalculatorService)
  • 服务主机(称为CalculatorServiceHost)
  • 服务代理(称为CalculatorServiceProxy,使用ClientBase)
  • 服务客户端(称为CalculatorServiceClient)

我对此的理解如下:

  1. 服务库包含可以在webservice中使用的服务/对象。让我们说它是一个带有方法加法的计算器。
  2. 主机使这个类具有客户端可用的功能。
  3. 代理从客户端向配置的端点发送和接收消息。
  4. 客户端可以通过代理从服务中调用函数。

本教程将代理设置如下:

代码语言:javascript
复制
public class MyCalculatorServiceProxy : ClientBase<ICalculator>, ICalculator {
    public int Add(int num1, int num2){
        return base.Channel.Add(num1, num2);
    }
}

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

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

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

如果我错了,或者有人有更多的信息/评论,请纠正我。

EN

回答 1

Stack Overflow用户

发布于 2016-03-08 03:09:16

@Tim,但我想知道的是,如果您引用带有服务合同和实现的程序集。为什么通过代理在Why服务上使用这些服务。如果您可以通过另一个程序集的引用立即调用这些函数?

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

但是对于编写单元和集成测试来说,这是很棒的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35674984

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档