Skip to main content
 首页 » 编程设计

c#之从 Web 服务检索对象列表 C#

2024年02月02日29zlslch

我想从我的 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 类:

  1. ClientApp.model.Car - 这是隐藏在网络服务后面的原始类。
  2. ClientApp.MyWebService.Car - 这是从 SOAP WSDL 创建的近似副本

副本将没有任何私有(private)成员,也没有任何属于原始 Car 的方法。

只需执行此操作即可取回汽车,因为

var carsWebservice = new MyWebService.WebService1SoapClient(); 
var cars = carsWebservice.GetAllCars(); 

这将返回一个 ClientApp.MyWebService.Car 数组