~~~首先声明项目开发到这个地步不能使用DataSet 来传输了~~~
有一个订单表,下面有n多条明细数据,将每个明细数据映射为对象(ORM),现在向WebServices里面传,这么多个对象怎么传呢,一开始用Arraylist结果到了WebServices里面强行转换不回来。想用对象数组,但是我是先arraylist。add(对象)的,然后强行转换为对象数组提示转换无效。
想请问各位是怎么解决这个问题的
有一个订单表,下面有n多条明细数据,将每个明细数据映射为对象(ORM),现在向WebServices里面传,这么多个对象怎么传呢,一开始用Arraylist结果到了WebServices里面强行转换不回来。想用对象数组,但是我是先arraylist。add(对象)的,然后强行转换为对象数组提示转换无效。
想请问各位是怎么解决这个问题的
myclass a1 = tmp[0] as myclass;
myclass a2 = tmp[1] as myclass;
...如果要一起转,那么一开始就应该用对象数组
myclass[] tmp = new myclass[10];
tmp[0] = new myclass();
....
===============================
using System;
using System.Web;
using System.Web.Services;
using System.Web.Services.Protocols;[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
public class Service : System.Web.Services.WebService
{
private static Service s = null;
[WebMethod]
public static Service GetService()
{
if (s == null)
s = new Service();
return s;
}
[WebMethod]
public string HelloWorld(MyUser[] users) {
string s = "";
for (int i = 0; i < users.Length; i++)
{
s += users[i].Name;
s += " ";
s += users[i].Gender;
}
return s; }
}
public class MyUser
{
public string Name;
public string Gender;
}
======================================测试代码:
======================================
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using Wss.localhost1;
using System.Collections;
namespace Wss
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
} private void button1_Click(object sender, EventArgs e)
{
ArrayList list = new ArrayList(); MyUser u = new MyUser();
u.Name = "zz";
u.Gender = "male";
MyUser k = new MyUser();
k.Name = "sss";
k.Gender = "female";
list.Add(u);
list.Add(k);
MyUser[] col = new MyUser[list.Count];
col = (MyUser[])list.ToArray(typeof(MyUser));
Service ss = new Service(); MessageBox.Show(ss.HelloWorld(col));
}
}
}
======================================
public static Service GetService()
{
if (s == null)
s = new Service();
return s;
}
这一部分代码你不用关注,是我测试其他东西用的。
webservice部分只看HelloWorld.