C# Webreference与servicereference。只有一个有效?序列化?

C# Webreference与servicereference。只有一个有效?序列化?,c#,web-services,service-reference,C#,Web Services,Service Reference,我有两份申请 一个使用webreference访问我的webservice,另一个使用servicereference访问我的webservice 我正在调用的方法是: [WebMethod] public Car[] GetCars(string carCode) { Cars[] cars= ModelToContract.ToCars(MyFacade.GetCars(carCode); return cars; } 汽车有两个游泳池: string Code {get;set;} C

我有两份申请

一个使用webreference访问我的webservice,另一个使用servicereference访问我的webservice

我正在调用的方法是:

[WebMethod]
public Car[] GetCars(string carCode)
{
 Cars[] cars= ModelToContract.ToCars(MyFacade.GetCars(carCode);
return cars;
}
汽车有两个游泳池:

string Code {get;set;}
CarType Type {get;set;}

public enum CarType
{
Van=0,
Pickup=1
}
我正在调试这个webMethod,而且

在最后,webservice抛出了大量汽车,其中有一辆汽车: code=“bmw”,Type.Van

但是。。。 具有webrefence的应用程序接收相同的集合 带有servicereference的应用程序获取集合,其中字段代码为null

调用servicereference:

MyService myService=new MyService()
Cars[] cars= client.GetCars(carcode);
调用Web服务:

MyService.MyServiceSoapClient client = new MyServiceS.MyServiceSoapClient();
            Cars[] cars= client.GetCars(carcode);

嗯,这是一个序列化问题

您的模型应如下所示:

[Serializable]
public class Car
{
    [XmlElement]
    string Code {get;set;}

    [XmlElement]
    CarType Type {get;set;}
}
您也可以确保返回类型:

MyService myService=new MyService()
MyService.Car[] cars= myService.GetCars(carcode);
-


是的,这现在适用于服务引用,但不适用于webreference:/如果尚未在客户端重新生成模型,则可能必须重新定义引用。实际上,
[Serializable]
不用于XML序列化。对于二进制序列化,这是真的。这只是实体的良好实践。
MyServiceS.MyServiceSoapClient client = new MyServiceS.MyServiceSoapClient();
MyServiceS.Car[] cars= client.GetCars(carcode);