我确信我不是第一个问这个问题的人,但是我在SO和Google中都没有找到答案……
我有一个自定义的集合:
[Serializable]
public class BaseCollection<T>: ICollection<T>
{
}
[CollectionDataContract]
[Serializable]
ProductsCollection : BaseCollection<Product>
{
[DataMember]
public int CategoryId {get;set;}
}现在,我使用WCF...the传递ProductsCollection的实例,问题是WCF没有正确地传递我的自定义属性CategoryId。它始终为0(默认值为int)。
在http://msdn.microsoft.com/en-us/library/aa347850.aspx,他们说CollectionDataContract应该解决这个问题,集合将被序列化到我的特定集合中,而不是ArrayOfProduct中。
我是不是漏掉了什么?
如果不能使用DataContract序列化程序,是否可以为我的特定类编写某种MyCustomContract序列化程序,以便根据需要序列化/反序列化我的集合?
谢谢
发布于 2012-12-11 21:39:12
DataContractSerializer (这是WCF默认值)仅序列化集合项,而不序列化额外的属性。
有关解决方法,请参阅此answer。
https://stackoverflow.com/questions/13820841
复制相似问题