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。

相关推荐
leisoo809735 分钟前
100GBA股股票数据怎么存ClickHouseRedisMySQLJSON完整对比
大数据·linux·服务器·开发语言·python
不会代码的小猴1 小时前
21. 泛型编程上
开发语言·c++·笔记·算法
一只旭宝2 小时前
细讲C加加【9】C++ std::function与std::bind详解|仿函数、绑定器、类成员绑定、占位符、成员偏移指针
开发语言·c++·算法
椒颜皮皮虾྅3 小时前
OpenVINO C# API 3.3.1:支持OpenVINO 2026.3及GenAI增强
人工智能·c#·openvino
coder!mq4 小时前
说几个常见的语法糖?
java·开发语言·算法
gugucoding4 小时前
38. 【Java】Stream API(下):高级操作与性能
java·开发语言
Lhan.zzZ4 小时前
在 Visual Studio 2022 中打造可扩展的动态链接库模块:从零搭建到原理解析
开发语言·c++·visual studio
心平气和量大福大5 小时前
android-实例-蒲公英-更新与安装-5-签名与生成APK
android·java·开发语言
码哥DFS5 小时前
构造函数、实例对象、对象原型 ----三者关系
开发语言·javascript·原型模式
quantdash_cc5 小时前
告别自建 Requests/BS4 网页爬虫:基于 QuantDash 搭建零维保的高性能量化行情流水线
开发语言·爬虫·python·pandas·量化·quantdash