我想从我的网络服务中检索一个对象列表,但我正在努力使用对象类型。
我有这段代码:
[WebMethod]
public Car[] GetAllCars()
{
List<Car> cars = new List<Car>();
cars.Add(new Car ("fiat", 1999);
cars.Add("opel" ,2007);
cars.Add("chevrolet",2007);
return cars.ToArray(); //
}
当我从浏览器测试Web服务时,一切都很好。它告诉我应该是什么。
但是在我尝试做的时候在客户端
MyWebService.WebService1SoapClient cars = new MyWebService.WebService1SoapClient();
Car[] l = (Car[]) cars.GetAllCars();
它说无法将ClientApp.MyWebService.Car []转换为ClientApp.model.Car []
对于双方(客户端和Web服务),Car类是相同的。
我该怎么做才能解决这个问题?
谢谢你提前。答案 0 :(得分:3)
虽然他们可能看,但这里涉及两个不同的Car类:
该副本不会有任何私人成员,也不会包含任何属于原始汽车的方法。
只需执行此操作即可检索汽车
var carsWebservice = new MyWebService.WebService1SoapClient();
var cars = carsWebservice.GetAllCars();
这将返回ClientApp.MyWebService.Car
的数组答案 1 :(得分:2)
如果两侧的汽车相同,那么就没有理由投出它,也没有理由在声明中使用类型。让编译器决定用于l ...
的类型var l = cars.GetAllCars();
答案 2 :(得分:0)
它应该适合你:
private void button_valider_Click(object sender, EventArgs e)
{
SqlCeConnection connexion =Connexion.getInstance().OpenConnection();
Cars= new List<Car>();
Cars= _cars .GetAllCars().ToList();
foreach (var car in Cars)
{
int year= car.year;
...
}
}
例如在按钮事件中:
ieDriverServer.exe