我想从我的 Web 服务中检索对象列表,但我正在为对象类型而苦苦挣扎。
我有这段代码:
[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(); //
}
当我从浏览器测试网络服务时,一切正常。它向我展示了应该是什么。
但是在客户端,当我尝试做的时候
MyWebService.WebService1SoapClient cars = new MyWebService.WebService1SoapClient();
Car[] l = (Car[]) cars.GetAllCars();
它说不能将 ClientApp.MyWebService.Car[] 转换成 ClientApp.model.Car[]
双方(客户端和网络服务)的 Car 类是相同的。
我应该怎么做才能解决这个问题?
谢谢你提前。
请您参考如下方法:
虽然它们可能看起来相同,但这里涉及两个不同的 Car 类:
- ClientApp.model.Car - 这是隐藏在网络服务后面的原始类。
- ClientApp.MyWebService.Car - 这是从 SOAP WSDL 创建的近似副本
副本将没有任何私有(private)成员,也没有任何属于原始 Car 的方法。
只需执行此操作即可取回汽车,因为
var carsWebservice = new MyWebService.WebService1SoapClient();
var cars = carsWebservice.GetAllCars();
这将返回一个 ClientApp.MyWebService.Car 数组
