【发布时间】:2010-11-04 03:48:12
【问题描述】:
我有两个简单的类:一个 Order 对象,它包含一个 OrderLine 对象列表:
public class Order
{
public string OrderNo { get; set; }
public string CustomerName { get; set; }
public List<OrderLine> Lines { get; set; }
}
public class OrderLine
{
public string ItemNo { get; set; }
public int Qty { get; set; }
public decimal Price { get; set; }
}
[WebMethod]
public Order GetOrder(string orderNo)
{
return null;
}
[WebMethod]
public List<Order> GetOrderList(string orderNo)
{
return null;
}
问题是 Orders 中 OrderLine 对象的详细信息(属性)不是由第二个 WebMethod 呈现的(它与第一个 WebMethod 一起工作正常):
第一个 WebMethod(返回一个 Order),呈现这个 XML(正确地,每个 OrderLine 带有 ItemNo、Qty 和 Price):
<GetOrderResult>
<OrderNo>string</OrderNo>
<CustomerName>string</CustomerName>
<Lines>
<OrderLine>
<ItemNo>string</ItemNo>
<Qty>int</Qty>
<Price>decimal</Price>
</OrderLine>
<OrderLine>
<ItemNo>string</ItemNo>
<Qty>int</Qty>
<Price>decimal</Price>
</OrderLine>
</Lines>
</GetOrderResult>
第二个WebMethod(返回一个List),渲染这个XML(注意OrderLines不再渲染细节):
<GetOrderListResult>
<Order>
<OrderNo>string</OrderNo>
<CustomerName>string</CustomerName>
<Lines>
<OrderLine xsi:nil="true" />
<OrderLine xsi:nil="true" />
</Lines>
</Order>
<Order>
<OrderNo>string</OrderNo>
<CustomerName>string</CustomerName>
<Lines>
<OrderLine xsi:nil="true" />
<OrderLine xsi:nil="true" />
</Lines>
</Order>
</GetOrderListResult>
如何让 OrderLines 以细节而不是 xsi:nil="true" 呈现??
谢谢。
感谢您的回复,但这无济于事。我贴的代码尽量简化了;真正的代码当然会实例化列表等,但仍然存在同样的问题。但我仍然在示例中尝试了您的建议:
public class Order
{
public string OrderNo { get; set; }
public string CustomerName { get; set; }
public List<OrderLine> Lines { get; set; }
public Order()
{
Lines = new List<OrderLine>();
Lines.Add(new OrderLine());
Lines.Add(new OrderLine());
}
}
WebMethod 仍然返回:
<GetOrderListResult>
<Order>
<OrderNo>string</OrderNo>
<CustomerName>string</CustomerName>
<Lines>
<OrderLine xsi:nil="true" />
<OrderLine xsi:nil="true" />
</Lines>
</Order>
<Order>
<OrderNo>string</OrderNo>
<CustomerName>string</CustomerName>
<Lines>
<OrderLine xsi:nil="true" />
<OrderLine xsi:nil="true" />
</Lines>
</Order>
</GetOrderListResult>
【问题讨论】:
标签: c# asp.net web-services soap