如何从web方法返回一组对象?这个对象集合可以是不同类型的 - 比如这3个类,
private class ClassA
{
int A1;
int A2;
}
private class ClassB
{
int B1;
}
private class ClassC
{
int C1;
}
ClassA objA = new ClassA(...);
ClassB objB = new ClassB(...);
ClassC objC = new ClassC(...);
如何从方法返回对象,objA,objB和objC?
答案 0 :(得分:3)
来自相同方法的不同可能结果?这将是丑陋的,并且不允许存在严格的模式(思考:WSDL)。也许在你返回的单一类型上封装所有4个选项?或者使用某种继承和[XmlInclude]
。如果是多个值,您可以返回List<TheBaseType>
。
如果你的意思是“我想把所有这些都打到方法中”,那就把它们包起来:
public class MyReturnType {
public ClassA A { get;set; }
public ClassB B { get;set; }
public ClassC C { get;set; }
}
并为多个值返回MyReturnType
(或List<MyReturnType>
)的实例。
答案 1 :(得分:0)
将它们作为数组或列表返回。我面前没有IDE,但它应该像
[WebMethod]
public object[] GetObjects()
{
...
return new object[] { objA, objB, objC };
}
如果它们从相同的基类或接口继承,那就更好了。
答案 2 :(得分:0)
您可以执行以下操作之一:
拥有一个包含所有这3个对象的自定义对象(不是列表,而是作为单独的对象)并传递此复合对象。
如果这些(所有三个对象)都是从基类继承的,那么只需传递一个包含所有这些存储在列表中的基类列表