Прочитать на английском

Поделиться через


HttpSimpleClientProtocol.EndInvoke(IAsyncResult) Метод

Определение

Завершает асинхронный вызов метода веб-службы XML с использованием HTTP.

protected object EndInvoke (IAsyncResult asyncResult);

Параметры

asyncResult
IAsyncResult

Объект IAsyncResult, возвращенный из метода BeginInvoke(String, String, Object[], AsyncCallback, Object).

Возвращаемое значение

Массив объектов, содержащий возвращаемое значение и все параметры, передаваемые по ссылке, и параметры out для метода веб-службы XML.

Исключения

asyncResult не является значением, возвращаемым из метода BeginInvoke(String, String, Object[], AsyncCallback, Object).

Примеры

В следующем примере кода используется веб-форма ASP.NET, которая вызывает веб-службу XML с именем Math. EnterBtn_Click В функции веб-форма запускается и завершает асинхронный вызов Add метода веб-службы XML.

Следующий пример кода представляет собой класс прокси, созданный средством языка описания веб-служб (Wsdl.exe) для Math веб-службы XML ниже. В методе EndAdd прокси-класса EndInvoke метод запускает асинхронный вызов Add метода веб-службы XML.

namespace MyMath
{
    [XmlRootAttribute("int", Namespace = "http://MyMath/", IsNullable = false)]
    public class Math : HttpGetClientProtocol
    {
        public Math()
        {
            this.Url = "http://www.contoso.com/math.asmx";
        }

        [HttpMethodAttribute(typeof(System.Web.Services.Protocols.XmlReturnReader),
            typeof(System.Web.Services.Protocols.UrlParameterWriter))]
        public int Add(int num1, int num2)
        {
            return ((int)(this.Invoke("Add", ((this.Url) + ("/Add")),
                new object[] { num1, num2 })));
        }

        public IAsyncResult BeginAdd(int num1, int num2, AsyncCallback callback, object asyncState)
        {
            return this.BeginInvoke("Add", ((this.Url) + ("/Add")),
                new object[] { num1, num2 }, callback, asyncState);
        }

        public int EndAdd(IAsyncResult asyncResult)
        {
            return ((int)(this.EndInvoke(asyncResult)));
        }
    }
}

В следующем примере кода показана Math веб-служба XML, на основе которой был создан указанный выше прокси-класс.

<%@ WebService Language="C#" Class="Math"%>
 using System.Web.Services;
 using System;
 
 public class Math {
      [ WebMethod ]
      public int Add(int num1, int num2) {
          return num1+num2;
          }
 }

Применяется к

Продукт Версии
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1