C# Webreference与servicereference。只有一个有效?序列化?
我有两份申请 一个使用webreference访问我的webservice,另一个使用servicereference访问我的webservice 我正在调用的方法是: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
[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);