Web引用与服务引用。只有一个有效吗?序列化?

时间:2010-04-23 08:06:46

标签: c# web-services service-reference

我有两个申请。

一个使用webreference到我的webservice,第二个使用servicereference到我的webservice。

我正在调用metohod:

[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抛出好车的集合,其中有一辆车: 代码= “BMW”,Type.Van

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

调用servicereference:

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

调用webservice:

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

1 个答案:

答案 0 :(得分:2)

哼这是一个序列化问题。

你的模型应该是这样的:

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

    [XmlElement]
    CarType Type {get;set;}
}

您也可以确保返回类型:

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

-

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