C#SOAP客户端使用WebForm并列出结果

时间:2015-09-12 16:57:49

标签: c# asp.net soap webforms

我是SOAP和C#的新手,但我试图通过构建一个简单的SOAP Web客户端来学习。我创建了一个带有单个按钮和列表框的Web表单。单击该按钮会向Web服务发送SOAP调用,返回一个简单的结果并显示在列表框中。该方法(getCountRegisteredSubscribers)不需要输入并返回int。接下来,我想使用另一个名为getSubscriber的方法返回有关订阅者的信息。此方法确实需要输入(订户名称)并将返回多个结果。我正在努力通过传递用户名并将结果列在我的列表框中来打电话,非常感谢任何建议!

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Xml;

namespace WebApplication2
{
    public partial class WebForm1 : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
        }

        protected void Button1_Click(object sender, EventArgs e)
        {
            WebApplication2.WebReference.SMFAdmin ws = new WebApplication2.WebReference.SMFAdmin();

            ListBox1.Items.Add("Request Submitted");
            ListBox1.Items.Add(""+ ws.getCountRegisteredSubscribers());
            //ListBox1.Items.Add("" + ws.getSubscribers("subname"));
        }
    }
}

更新

我添加了一个变量来存储订阅者名称,但是,它在我的列表框中返回“WebApplicaiton2.WebReference.Subscriber”。任何想法如何解决这一问题?每个订阅者都有几个项目,如何让它们列在我的列表框中?提前谢谢。

namespace WebApplication2
{
public partial class WebForm1 : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {

    }

    protected void Button1_Click(object sender, EventArgs e)
    {

        var subName = "subscriber 1";

        WebApplication2.WebReference.SMFAdmin ws = new WebApplication2.WebReference.SMFAdmin();

        ListBox1.Items.Add("Request Submitted");
        ListBox1.Items.Add(""+ ws.getCountRegisteredSubscribers());
        ListBox1.Items.Add("" + ws.getSubscriber(subName));

    }


}
}

2 个答案:

答案 0 :(得分:0)

您只需循环遍历结果并将其插入列表框。

protected void Button1_Click(object sender, EventArgs e)
{
    WebApplication2.WebReference.SMFAdmin ws = new WebApplication2.WebReference.SMFAdmin();

    ListBox1.Items.Add("Request Submitted");
    ListBox1.Items.Add("" + ws.getCountRegisteredSubscribers());
    ListBox1.Items.Add("" + ws.getSubscribers("subname"));

    List<string> lstOutput = new List<string>();
    lstOutput = ws.getSubscribers("subname");
    lstOutput.ForEach(eachItem => ListBox1.Items.Add(eachItem));
}

答案 1 :(得分:0)

从您的Exception消息中,似乎getSubscribers不会将String值作为参数。所以你必须做这样的事情。

ws.getSubscribers(new SubscriberNameInfo 
{
  *** value goes here **
});

我不知道SubscriberNameInfo类的详细信息,因此我无法指定属性。

注意:上述答案中的第二条评论类似,我刚刚添加了一些代码段。

我希望,这会有所帮助。