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。

相关推荐
johnrui12 分钟前
集合与树形结构
开发语言·windows
该怎么办呢25 分钟前
Source/Core/DeveloperError.js
开发语言·javascript·ecmascript
小璐资源网27 分钟前
Java 21 新特性实战:虚拟线程详解
java·开发语言·python
m0_5698814737 分钟前
基于C++的数据库连接池
开发语言·c++·算法
.select.44 分钟前
c++ auto
开发语言·c++·算法
2401_884563241 小时前
C++中的访问者模式高级应用
开发语言·c++·算法
消失的旧时光-19431 小时前
C++ 多态核心三件套:虚函数、纯虚函数、虚析构函数(面试 + 工程完全指南)
开发语言·c++·面试·虚函数·纯虚函数·虚析构函数
青春易逝丶1 小时前
策略模式
java·开发语言·策略模式
freexyn1 小时前
Matlab入门自学七十四:坐标系转换,直角坐标、极坐标和球坐标的转换
开发语言·算法·matlab
Dxy12393102162 小时前
js如何把字符串转数字
开发语言·前端·javascript