1

我有一个 DataObjects 类,其中包含一个 UserEmail 对象,该对象包含一个 int (EmailID) 和一个字符串 (EmailAddress)。

在 C# .net 应用程序中,如果我想显示电子邮件地址列表 - 我创建并填充 UserEmail 对象列表。

List<DataObjects.UserEmails> myUserEmailsList = new List<DataObjects.UserEmails>();

并将它用作我碰巧使用的任何控件的数据源。

我需要将该列表传递给 Web 服务。我看不出该怎么做。如果对方使用将列表作为参数的方法编写 Web 服务 - 很好,我可以调用 Web 服务并传递我的列表。但是他们如何能够从列表中提取数据——而无需访问在列表中创建对象的类?

有没有办法在不知道对象的数据结构是什么的情况下遍历对象列表?

4

2 回答 2

1

当您使用他们的 Web 服务时,您必须符合他们的数据结构。您获取您的 UserEmail 对象数据,并将其转换为他们的服务所期望的对象。

如果您使用的服务只需要数据作为获取或发布数据,则必须使用他们需要的任何键。因此,他们可能会使用“email”键而不是您的“EmailAddress”属性名称来获取电子邮件地址

于 2012-08-30T19:13:14.907 回答
0
here a sample to pass list object to your webservice

    <%@WebService Language="c#" class="CustomObjectArrayWS"%>
using System;
using System.Collections;
using System.Web.Services;
using System.Xml.Serialization;
public class CustomObjectArrayWS
{
        [WebMethodAttribute]
        [XmlInclude(typeof(Address))]
        public ArrayList GetAddresses ()
    {
        ArrayList al = new ArrayList();
        Address addr1 = new Address("John Smith", "New York",12345);
        Address addr2 = new Address("John Stalk", "San Fransisco", 12345);

            al.Add(addr1);
            al.Add(addr2);

            return al;
    }
} 
// Custom class to be added to the collection to be passed in //and out of the service
public class Address
{
    public string name;
    public string city;
    public int zip;     
    // Default ctor needed by XmlSerializer
    public Address()
    {
    }
    public Address(string _name, string _city, int _zip  )
    { 
                    this.name = _name;
                    this.city = _city;
                     this.zip = _zip;
           }
       }

请参阅http://www.programmersheaven.com/2/XML-Webservice-FAQ-Pass-Array-Of-Custom-Objects

于 2012-08-30T19:18:04.837 回答