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。

相关推荐
enfpZZ小狗1 小时前
基于C++的反射机制探索
开发语言·c++·算法
黎雁·泠崖1 小时前
Java static入门:概述+静态变量特点与基础实战
java·开发语言
玉梅小洋1 小时前
C盘爆满 修改VS Code缓存与插件目录指定方法
开发语言·windows·visualstudio
C#程序员一枚1 小时前
C#AsNoTracking()详解
开发语言·c#
一条大祥脚1 小时前
26.1.21 根号分治 相向双指针
java·开发语言·redis
涅小槃2 小时前
Carla仿真学习笔记(版本0.9.16)
开发语言·python·ros·carla
wujialaoer2 小时前
常用软件阿里源地址
开发语言·python
沐知全栈开发2 小时前
SVG 文本:深入解析与高效应用
开发语言
张丶大帅2 小时前
【走进Golang】
开发语言·后端·golang