我的服务器和Web服务上都有相同的类.我有以下WebMethod:
[WebMethod]
public int CreateOrder(List<Purchase> p, string username)
{
o.Add(new Order(p,username));
return o.Count;
}
Run Code Online (Sandbox Code Playgroud)
但是以下代码在服务器上运行:
protected void CartRepeater_ItemCommand(object source, RepeaterCommandEventArgs e)
{
List<Purchase> l = ((List<Purchase>)Session["Cart"]);
if (e.CommandName == "Order")
{
localhost.ValidateService WS = new localhost.ValidateService();
WS.CreateOrder(l, Session["username"].ToString());
}
}
Run Code Online (Sandbox Code Playgroud)
出现以下错误:Argument '1': cannot convert from 'System.Collections.Generic.List<Purchase>' to 'localhost.Purchase[]'.
如何将list<Purchase>对象传输到Web服务?
使用这样的Web服务时,默认情况下List<T>会转换为数组(T[]).在将列表.ToArray()传递给方法之前,将列表转换为数组.
另一种选择是将Web服务代码生成设置更改为使用列表而不是数组.
看起来你也有重复的类,既可以调用本地类Purchase,也可以调用通过Web服务生成的类Purchase.尽管它们具有相同的名称,但它们是两种不同的类型(它们的名称空间不同).您要么必须坚持使用一组类型,要么使用Automapper之类的东西在两组类型之间进行映射.
| 归档时间: |
|
| 查看次数: |
7716 次 |
| 最近记录: |