如何:在托管代码中访问 Web 服务

更新:2007 年 11 月

从托管代码访问 Web 服务是一个简单的过程。首先,将 Web 引用添加到要访问的 Web 服务的项目中。Web 引用创建具有方法的代理类,这些方法用作 Web 服务的每个公开方法的代理。然后,添加该 Web 引用的命名空间。最后,创建该代理类的实例,并访问该类的方法,就像访问任何其他类的方法一样。有关更多信息,请参见 在托管代码中访问 Web 服务的代码模型

默认情况下,添加 Web 引用同时会将方法添加到代理类,用来异步访问 Web 服务。有关更多信息,请参见 如何:异步访问托管代码中的 Web 服务

使用托管代码访问 Web 服务

  1. 创建要从其中访问 Web 服务的应用程序。该应用程序甚至可以是另一个 Web 服务。

  2. 为将要与应用程序交互的 Web 服务添加一个 Web 引用。有关说明,请参见添加和移除 Web 引用

  3. 在要从其中访问 Web 服务的客户端代码中创建代理对象的实例。

  4. 访问该 Web 服务的方法,就像访问任何其他组件的方法一样。

    在下面的示例代码中,客户端应用程序 (Application1) 正在访问一个 Web 服务,此应用程序具有一个对该 Web 服务的 Web 引用 (Converter),该引用包含代理类 (Service1),而此代理类具有调用该 Web 服务的方法 (ConvertTemperature)。两行粗体代码表示访问该 Web 服务所必需的代码。

    Imports System
    Module Module1
        Sub Main()
            Dim cService As New Converter.Service1()
            Dim dFahrenheit As Double
            Dim dCelsius As Double
            Console.Write("Temperature in degrees Fahrenheit: ")
            dFahrenheit = Convert.ToDouble(Console.ReadLine())
            dCelsius = cService.ConvertTemperature(dFahrenheit)
            Console.Write("Temperature in degrees Celsius: ")
            Console.WriteLine(dCelsius.ToString())
        End Sub
    End Module
    
    using System;
    namespace Application1
    {
       class Class1
       {
          static void Main()
          {
             Converter.Service1 cService = new Converter.Service1();
             Console.WriteLine("Temperature in degrees Fahrenheit: ");
             double dFahrenheit = Convert.ToDouble(Console.ReadLine());
             double dCelsius = cService.ConvertTemperature(dFahrenheit);
             Console.Write("Temperature in degrees Celsius: ");
             Console.WriteLine(dCelsius.ToString());
          }
       }
    }
    

请参见

概念

生成 XML Web services 客户端

其他资源

在托管代码中访问 Web 服务