Как получить возвращаемое значение из ASMX Service? - PullRequest
2 голосов
/ 13 августа 2010

У меня есть сервис ASMX.Я хочу получить ответ от него.Мой код ниже:

public class UserService : System.Web.Services.WebService
{
    [WebMethod]
    public string GetPassword()
    {
        return "123";
    }
}

Ответы [ 2 ]

3 голосов
/ 13 августа 2010

Если вы имеете в виду "как мне подключиться к этому веб-сервису?" вам нужно будет создать проект Visual Studio (я предполагаю VS2k8 здесь), будь то консольное приложение, Windows Forms или почти любой другой

  1. Щелкните правой кнопкой мыши «Ссылки» в обозревателе решений и выберите «Добавить ссылку на службу ...»
  2. Введите адрес, по которому вы разместили свою услугу, в поле Адрес
  3. Нажмите «GO»
  4. Выберите соответствующую услугу в поле «Услуги»
  5. Выберите пространство имен для поля «Пространство имен»
  6. Хит ОК

Visual Studio теперь сгенерирует прокси службы для вас. Если вы выбрали свое пространство имен как, например, «MyNamespace», то в Visual Studio вы можете добавить в свой код:

using (var client = new MyNamespace.UserService())
{
    var result = client.GetPassword();
}
1 голос
/ 14 августа 2010

Я надеюсь, что вы хотите подключить сервис ASMX к вашему приложению Silverlight. Если это так, вы можете взглянуть на этот блог .

Хотя я использовал службу WCF в своем блоге, подключение службы к приложению Silverlight - это одно и то же.

Следуйте инструкциям в блоге, чтобы добавить службу ASMX в качестве ServiceReference.

Попробуйте этот код на стороне клиента

private void Connect2Service()
{
  ServiceReference.UserServiceClient client = new ServiceReference.UserServiceClient();
  client.GetPasswordCompleted += 
             new EventHandler<GetPasswordCompletedEventArgs>(client_GetPasswordCompleted);
  client.GetPasswordAsync();
}

private void client_GetPasswordCompleted(object sender, GetPasswordCompletedEventArgs e)
{
    // Textblock will show the output. In your case "123"
    textblock.Text = e.Result;
}
...