如何从ASMX服务获得返回值?

时间:2010-08-13 12:22:31

标签: c# silverlight wcf asmx

我有ASMX服务。我想收到一封回复。我的代码如下:

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

2 个答案:

答案 0 :(得分:3)

如果您的意思是“我如何连接到此网络服务?”你需要创建一个Visual Studio项目(我在这里假设VS2k8),无论是控制台应用程序,Windows窗体,还是其他几乎所有

  1. 右键单击Solution Explorer中的“References”,然后选择“Add Service Reference ...”
  2. 在地址栏中输入您找到服务的地址
  3. 点击“开始”
  4. 在“服务”框中选择相关服务
  5. 为“命名空间”框选择一个命名空间
  6. 点击确定
  7. Visual Studio现在将为您生成服务代理。如果您选择了名称空间,例如“MyNamespace”,那么在Visual Studio中您可以添加代码:

    using (var client = new MyNamespace.UserService())
    {
        var result = client.GetPassword();
    }
    

答案 1 :(得分:1)

我希望您希望将ASMX服务连接到Silverlight应用程序。如果是这种情况,您可以查看此blog

虽然我在我的博客中使用过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;
}