wince中wcf中传递数据的问题,string能够传递,但int,double等等却都是0了,
在compact framework中,c#的,中传递了一个对象,结构如下:
[DataContract]
public class CProdList
{
[DataMember]
public string _ID { get; set; }
[DataMember]
public string _BillID { get; set; }
[DataMember]
public int SN { get; set; }
[DataMember]
public string Code { get; set; }
[DataMember]
public double Net { get; set; }
}
在服务器中收到,string类型的数据没有问题,_id,code,但int和double都成了0了,还是第一次遇到这个问题。
从客户端到服务器端有问题,
但从服务器端下载数据没有任何问题,比较怪异!!
追踪下来,发现发送之前,除了string序列化了,int 和double等类型没有序列化,
有谁知道如何解决啊?
[最优解释]
吧[DataContract],[DataMember]都去掉试试,.net3.5不需要写这个了。
[其他解释]
不应该吧,真是奇怪。
[其他解释]
这真奇怪。。。你这个CProdList有父类么?
[其他解释]
该回复于2011-12-01 11:27:29被版主删除
[其他解释]
去掉了[DataContract],[DataMember],效果一样,但怪异的是:如果CProdList中包含其他对象,比如
[DataContract]
public class CProdList
{
[DataMember]
public string _ID { get; set; }
[DataMember]
public string _BillID { get; set; }
[DataMember]
public int SN { get; set; }
[DataMember]
public string Code { get; set; }
[DataMember]
public double Net { get; set; }
[DataMember]
public Persion P{get;set;}
}
public class Persion
{
public double m;
public int i;
public string s;
}
对象persion序列化没有问题,但CProdList中的其他double,int还是没有序列化
[其他解释]
对了,是将这个类当成接口的参数来传递的,
比如:
CProdList p = new CProdList;
......
client.Do(p);
[其他解释]
解决了,必须得加
[DataMember(IsRequired = true, Order = 1)]
。。。