.net添加web引用和添加服务引用有什么区别?

添加web引用和添加服务引用有什么区别?

添加web引用和添加服务引用有什么区别,

Add Service References 和 Add Web References 有啥区别?

(1)VS2005里提供的Add Web Reference(添加Web服务引用)的功能主要是添加Web Service引用。

(2)VS2008保留了Add Web Reference(添加Web服务引用)也是为了版本向前兼容。目前很多项目还是基于.NET Framework 2.0。

(3)VS2008在升级以后为了对.NET Framework 3.0 或 3.5版本上WCF Service Library的支持。增加了Add Service Reference(添加服务引用)功能。Framework3.0 或 3.5 时可用。

你说的情况我自己做了一下试验,同时存在Add Service Reference、Add Web Reference 两者情况的项目类型是Web服务程序。包括Web Service项目。普通的控制台等类型是没有Add Web Reference 。

我仔细对比了两种方式添加同一个 WebService生成的客户端文件 Reference.cs, 有差别。

1.主要添加引用都有一个获取服务元数据,反序列话本地类文件的过程。这个结构也基本类似。都包含wsdl\discovery等文件。

这个也和WCF Service支持Web Service的核心行业标准有关系。毕竟WCF的特性之一就是兼容Web Service的特性。

2.不同的地方时Add Web Reference 生成的 Reference.cs文件里,包含一个服务代理类,他负责与Web服务通信,它继承一个Soap类,使用SOAP协议,SOAP简单对象访问协议,基于XML语言。此外还包含一些Web服务类里定义的方法,和与之相关的异步调用方法和事件。遵守.NET Web Service 的主要规则。

3.Add Service Reference生成的客户端文件 Reference.cs。我看了一下,这个也会反序列化一个本地代理类,很相似和前者。不过除了服务类和其相关的一些别的类和契约接口。其中比较重要就是一个契约和一个通信管道。这个主要和WCF框架

的编程模型和反序列话机制有关系。因为WCF 强调的是 契约的概念,还有就是绑定协议,这个就直接决定了客户端和服务端通信的通道类型。你在这个文件里也能看到。此外还有服务请求和相应对应的信息。遵循WCF服务框架的规则。

  1. 添加Web引用生成的代理可以被.NET Framework 1.0或者.NET Framework 2.0的客户端调用。

而添加服务引用生成的代理只能被.NET Framework 3.0以上的客户端调用,而且添加服务引用后不仅生成代理类,在web.config中还会生成相应的标记。

同时存在Add Service Reference、Add Web Reference 两者情况的项目类型是Web服务程序。包括Web Service项目。普通的控制台等类型是没有Add Web Reference 。

都是可以Add Web Reference的诶,控制台类型项目在Add Service Reference窗口有个Advanced按钮,其中仍然可以选择Add Web Reference。我觉得是微软建议使用Add Service Reference,但保留了Add Web Reference以保持兼容性。

我测试了使用Add Web Reference这种方式,可以添加WCF服务


版权声明:本文为CSDN博主「勿勿」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。

原文链接:添加web引用和添加服务引用有什么区别?_web引用改成服务引用-CSDN博客

快速区分服务引用与Web引用

href="http://book.2cto.com/201304/20441.html" http://book.2cto.com/201304/20441.html

使用添加Web引用后将由wsdl.exe生成客户端代理。而使用添加服务引用后生成客户端代理的命令是svcutil.exe

System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.Tools.ServiceModel.Svcutil", "2.0.2")

更新服务引用

WCF 数据服务的实体数据模型有时会更改。 发生这种情况时,必须更新服务引用。

解决方案资源管理器中 ,展开 "连接服务 "节点,右键单击服务引用,然后单击" 更新服务引用"。

从引用的初始位置对其进行更新时会显示一个进度对话框,并且会重新生成服务客户端以显示元数据中的所有更改。

没有看到----20220720

重新使用引用的程序及中的类型

选择A ,引用所有;

选择B 手动引用

区别

选择全部

选择手动选择

相关推荐
_阿南_19 分钟前
项目中新增给AI制定的代码规范
前端·程序员
mldong20 分钟前
C# 开发者也有自己的轻量工作流引擎了:NuGet 装包,5 分钟跑通一条审批流
后端·c#·.net
名字还没想好☜1 小时前
React 实现暗黑模式切换:localStorage 持久化、SSR 首屏闪烁与跟随系统主题
前端·javascript·react.js·ecmascript·react·next.js
xcl09251 小时前
幼儿托育系统开发实战:从需求分析到上线全流程指南
java·大数据·需求分析
吴声子夜歌2 小时前
ApacheCommons——commons-cli(命令行参数解析)
java·开发语言·apache
小小猪的春天2 小时前
Java 手写第一个 MCP Server:Spring AI MCP 半小时跑通
java·人工智能·spring boot·ai编程
find1star2 小时前
LeetCode 141:环形链表
java·算法·leetcode·链表
console.log('npc')2 小时前
Git 冲突与 AI 协助指南
前端·人工智能·git·大模型
今天AI了吗3 小时前
DeepSeek Harness 深度解析:从评测架构到实战落地
java·网络·数据库·人工智能·架构·java-ee
许彰午3 小时前
27-AuthService登录链路
java·低代码·架构