c# - 如何使用 WSDL

标签 c# web-services wsdl

我需要使用 Web 服务。他们向我发送了 WSDL 文件。 我应该怎么做才能将它添加到我的网站并开始将其用作代理。 (如果我将它放在虚拟目录中,它可以被发现,但它是否允许我连接到真实的 Web 服务?)

最佳答案

我会启动 Visual Studio,创建一个 Web 项目(或控制台应用程序 - 无关紧要)。

对于 .Net 标准:

  1. 我会右键单击项目并从添加上下文菜单中选择“添加服务引用”。
  2. 我会点击“高级”,然后点击“添加服务引用”。
  3. 我会获取 wsdl 的完整文件路径并粘贴到地址栏中。然后发射箭头(开始按钮)。
  4. 如果尝试加载文件时出现错误,则文件必须有一个损坏且未解析的 url 需要解析,如下所示: enter image description here 有关如何修复的信息,请参阅此答案: Stackoverflow answer to: Unable to create service reference for wsdl file

如果没有错误,您只需设置要用于访问该服务的 namespace ,它就会为您生成。

对于 .Net 核心

  1. 我会右键单击该项目,然后从“添加”上下文菜单中选择“连接服务”。
  2. 我会从列表中选择 Microsoft WCF Web 服务引用提供程序。
  3. 我会直接按浏览并选择 wsdl 文件,设置命名空间,然后就可以开始了。 如果遇到任何错误,请参阅上面的错误修复网址。

上述任何方法都会生成一个简单、非常基本的 WCF 客户端供您使用。您应该在生成的代码中找到“YourservicenameClient”类。

作为引用,生成的 cs 文件可以在您的 Obj/debug(or release)/XsdGeneratedCode 中找到,您仍然可以在 TempPE 文件夹中找到 dll。

创建的服务应该具有 WSDL 契约上定义的每个方法的方法。

实例化客户端并调用您要调用的方法 - 仅此而已!

YourServiceClient client = new YourServiceClient();
client.SayHello("World!");

如果您需要指定远程 URL(不使用默认创建的 URL),您可以在代理客户端的构造函数中轻松地执行此操作:

YourServiceClient client = new YourServiceClient("configName", "remoteURL");

其中 configName 是要使用的端点的名称(您将使用除 URL 之外的所有设置),remoteURL 是表示要连接的 URL 的字符串到(而不是配置中包含的那个)。

关于c# - 如何使用 WSDL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1302525/

相关文章:

c# - .NET Web API - ModelState 的错误响应

c# - 将 "Android.Views.ViewGroup"添加到 Xamarin XAML 页面

c# - EF 的 POCO vs POCO 更好的数据传输对象?

java - CacheLoader 多次加载相同的键

c# - 从对象列表填充下拉列表

c# - 如何编码 C# 结构数组?

web-services - SharePoint usergroup.asmx 中的 AddRole 和 AddRoleDef 之间的区别?

php - 从 wsdl 生成 php 代码

java - Axis2创建持久连接

公共(public)反向代理背后的 WCF Web 服务