C#:WebReference

在C#里,WebReference是.NET Framework 2.0到3.5时代用来调用传统ASMX Web服务的主要方式,它通过WSDL生成客户端代理类,能像调用本地方法一样访问远程服务。不过现在更推荐用Service Reference(基于WCF)或HttpClient来调用现代API,因为它们更轻量、灵活且支持RESTful风格。

1、核心概念

‌WebReference‌:是Visual Studio里的一个项目项,用于添加对ASMX Web服务的引用,自动生成代理类。

‌Service Reference‌:是.NET Framework 3.0+引入的更高级方式,基于WCF,支持更多协议和功能,但配置更复杂。

2、主要区别

特性 ‌Web Reference‌ ‌Service Reference‌

基础‌ System.Web.Services System.ServiceModel (WCF)

适用服务‌ 传统ASMX Web服务 WCF服务、部分ASMX服务

配置‌ 在app.config或web.config中 在app.config中,但更复杂

灵活性‌ 较低 较高,支持更多绑定和行为

现代性‌ 已过时,不推荐用于新项目 已被HttpClient等取代,但仍在维护

使用场景

‌WebReference‌:维护或调用旧的ASMX Web服务。

‌Service Reference‌:调用WCF服务或需要高级功能时。

‌现代应用‌:优先用HttpClient调用RESTful API。

简单示例

‌添加WebReference‌:在Visual Studio中右键项目 -> "添加服务引用" -> "高级" -> "添加Web引用",输入ASMX服务URL。

‌调用服务‌:

// 假设服务名为 MyService

var client = new MyService.MyWebService();

var result = client.MyMethod("参数");

注意事项

‌WebReference‌:仅用于.NET Framework项目,.NET Core/.NET 5+不支持。

‌Service Reference‌:在.NET Core/.NET 5+中可用,但需配置。

‌性能‌:两者都比HttpClient重,频繁调用时注意性能。

总之,除非维护旧系统,否则新项目应避免使用WebReference。

相关推荐
wenzhangli74 小时前
ooderA2UI BridgeCode 深度解析:从设计原理到 Trae Solo Skill 实践
java·开发语言·人工智能·开源
灵感菇_4 小时前
Java 锁机制全面解析
java·开发语言
wazmlp0018873694 小时前
python第三次作业
开发语言·python
娇娇乔木5 小时前
模块十一--接口/抽象方法/多态--尚硅谷Javase笔记总结
java·开发语言
明月醉窗台5 小时前
qt使用笔记六之 Qt Creator、Qt Widgets、Qt Quick 详细解析
开发语言·笔记·qt
wangjialelele5 小时前
平衡二叉搜索树:AVL树和红黑树
java·c语言·开发语言·数据结构·c++·算法·深度优先
lili-felicity5 小时前
CANN性能调优与实战问题排查:从基础优化到排障工具落地
开发语言·人工智能
独自破碎E5 小时前
【BISHI15】小红的夹吃棋
android·java·开发语言
进阶小白猿5 小时前
Java技术八股学习Day33
java·开发语言·学习
程序员敲代码吗5 小时前
如何通过命令行启动COMSOL的参数化、批处理和集群扫描
java·c#·bash