Wcf “添加引用”和“添加服务引用”之间有什么区别?

Wcf “添加引用”和“添加服务引用”之间有什么区别?,wcf,visual-studio,service-reference,Wcf,Visual Studio,Service Reference,我有C/WCF服务。我正在为它添加一个服务引用,所以我的一位同事建议我只需使用一个库为它添加一个引用 第二个答案表明,这样做我就失去了服务的可重用性。 对吗?这些选项之间还有其他区别吗 编辑 我没有使用WCF的经验。我是根据教程工作的,请在你的答案中提供一些解释或链接 编辑2 我想要一个Windows托管的WCF服务,该服务将在运行我的主应用程序的每台计算机上运行。我的应用程序和另一个应用程序将仅在本地使用此服务。 我还可以通过添加引用来实现这一点吗 编辑3 我需要一个服务,因为我有两个不同的应

我有C/WCF服务。我正在为它添加一个服务引用,所以我的一位同事建议我只需使用一个库为它添加一个引用

第二个答案表明,这样做我就失去了服务的可重用性。 对吗?这些选项之间还有其他区别吗

编辑 我没有使用WCF的经验。我是根据教程工作的,请在你的答案中提供一些解释或链接

编辑2
我想要一个Windows托管的WCF服务,该服务将在运行我的主应用程序的每台计算机上运行。我的应用程序和另一个应用程序将仅在本地使用此服务。 我还可以通过添加引用来实现这一点吗

编辑3 我需要一个服务,因为我有两个不同的应用程序正在做同样的事情,他们需要硬件资源。目前,其中一个正在使用另一个的dll,因此代码至少不会被复制和粘贴,但无法阻止对这些资源的并发访问。Windows服务可以解决这个问题。 装订不太重要。我将进一步了解命名管道

添加引用是将引用添加到dll、exe等


添加服务引用将创建代理类添加到某些服务

当您使用添加服务引用时,Visual Studio使用svcuti.exe创建客户端代理,以及另外的web.config或app.config文件-特殊类,这些类描述服务器端服务契约上的方法。当您知道这个契约并且拥有propper配置时,您可以从服务器服务远程调用这些方法

当您使用addreference时,您只需添加一个新的库,您可以使用它来处理在那里实现的类、接口和方法。如果dll中有服务契约类,则可以使用它,而不是使用svcutil.exe创建它。但您必须配置它的设置绑定和地址

编辑1创建WFC服务的示例很多。看到或看到。你想要什么解释?您只需使用方法将contractyou类化,将其链接到客户端和服务器应用程序,并定义适当的绑定,该绑定描述了如何在它们之间发送合同数据


编辑2在不知道应用程序的目的的情况下,很难说你必须使用什么。因此,是的,您可以使用本地windows服务在那里托管wcf服务。对于这类服务,存在一种特殊类型的WCF服务,称为NamedPipe-localy-hosted服务。有关说明和实现,请参见。

添加引用用于使用项目中的dll或exe文件,其中使用as Add service引用添加或使用服务。添加服务引用将创建代理
在该项目中,主应用程序在每台客户机上运行,而WCF服务在服务器上运行。没有在每个客户端上运行WCF服务,这是没有意义的

所以你通常会:

创建客户端应用程序 创建WCF服务 将客户端应用程序中的服务引用添加到WCF服务中 部署:

将您的客户端应用程序部署到要使用它的每台客户端计算机 将WCF服务部署到一台或多台a服务器计算机
我明白这一点,但我仍然可以通过它的接口访问我的服务,如果它们是在一个单独的dll中定义的,不是吗?为什么没有意义呢。那么命名管道绑定呢?您在哪里看到TS需要命名管道?我想要一个Windows托管的WCF服务,该服务将在运行我的主应用程序的每台计算机上运行。我的应用程序和另一个应用程序将仅在本地使用此服务-它不适合命名管道吗?因为TS在“添加引用”和“添加服务引用”之间的差异可能是新的?我认为我们必须挑战这个解决方案,因为这似乎是一件奇怪的事情。也许TS应该先解释一下他真正想做什么。我同意,只提供很少的信息。但是从TS的文章来看,如果她决定在本地服务上使用WCF,这可能是一条可行的道路。