1

我确定我不是第一个提出这个问题的人,但我没有在 SO 和 Google 中找到适合我的答案......

我有以下自定义集合:

[Serializable]
public class BaseCollection<T>: ICollection<T>
{
}

[CollectionDataContract]
[Serializable]
ProductsCollection : BaseCollection<Product>
{
    [DataMember]
    public int CategoryId {get;set;}
}

现在,我转移了使用 WCF 的实例ProductsCollection......问题是 WCF 没有正确转移我的自定义属性 CategoryId。它始终为 0(默认为 int)。

http://msdn.microsoft.com/en-us/library/aa347850.aspx他们说CollectionDataContract应该解决它,并且集合将被序列化到我的特定集合而不是 ArrayOfProduct。

我错过了什么吗?

如果 DataContract 序列化程序不可能,是否可以为我的特定类编写某种 MyCustomContract 序列化程序,以便根据需要对我的集合进行序列化/反序列化?

谢谢

4

1 回答 1

2

(这DataContractSerializer是 WCF 默认值)仅序列化集合项,但没有额外的属性。

请参阅此答案以获取解决方法。

于 2012-12-11T13:39:12.380 回答