繁体   English   中英

在 C# Web 服务中发送对象列表

[英]Sending List of objects in c# web service

我有以下两个对象:

public class Dog
{
  public string Name {get;set;}
  public int Age {get;set;}
} 

public class Person
{
  public string Name {get;set;}
  public string City {get;set;}
  public string ID {get;set;}
} 

现在,在服务器端,我构建了一个人和狗的混合列表,我想通过网络服务(asmx)将此列表返回给客户端。

顺序很重要,最终我的列表将包含更多类型。

如何在网络服务中返回混合对象列表?

谢谢。

我认为你应该创建一个新的类来封装你的许多类

public class Dog : MyClass
{
  public string Name {get;set;}
  public int Age {get;set;}
} 

public class Person : MyClass
{
  public string Name {get;set;}
  public string City {get;set;}
  public string ID {get;set;}
} 

public class NewClass
{
    public enum OBJType { 
       Dog,Person
    } // like a constant for specific object type
    public Dog D_Dog { get; set;  }
    public Person D_Person { get; set; }
    public OBJType Type { get; set; } 
    public int seq { get; set; }

}

那么它应该像这样使用

        //At Server
        List<NewClass> newList = new List<NewClass>();
        NewClass Item1 = new NewClass();
        Item1.D_Dog =  new Dog() { Name = "Woof", Age = 3 };
        Item1.seq = 1;
        Item1.Type =  NewClass.OBJType.Dog;
        newList.Add(Item1);

        NewClass Item2 = new NewClass();
        Item2.D_Person = new Person() { Name = "John", City = "TPP" , ID =111 };
        Item2.seq = 2;
        Item2.Type = NewClass.OBJType.Person;
        newList.Add(Item2);


        //At Client
        List<NewClass> newList = //..get form webservice 

         foreach (var Item in newList)
        {
            if (Item.Type == NewClass.OBJType.Dog)
            {
                // using Item.D_Dog;
            }
            else {
                // using Item.D_Person

            }

        }

不是 C# 的专业人士,所以如果它不是最有效的,请原谅。

第一类,即 Person.cs

public class Person : MyClass
{
    public string Name { get; set; }
    public string City { get; set; }
    public string ID { get; set; }
}

第二类,即 Dog.cs

public class Dog : MyClass
{
    public string Name { get; set; }
    public int Age { get; set; }
}

继承的类,即 MyClass.cs

public class MyClass
    {
        public string Type { get; set; }
    }

请注意,我添加了一个字段 Type 来区分使用 Web 服务的程序中的对象。 您可以使用枚举类型来改进这一点。

Example 函数返回数据。

public List<MyClass> returnData()
        {


            List<MyClass> returningdata = new List<MyClass>();

            Person pers = new Person();
            pers.City = "NELSPRUIT";
            pers.Name = "TED";
            pers.ID = "5502226585665";
            pers.Type = "PERSON";

            returningdata.Add(pers);

            Dog doggy = new Dog();
            doggy.Name = "Tiny";
            doggy.Age = 2;
            doggy.Type = "DOG";

            returningdata.Add(doggy);

            return returningdata;
        }

希望这是你想要的。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM