1
我敢肯定,我不是第一个谁问这个问题,但我没有发现我的答案在SO和谷歌...WCF和自定义集合系列化
我有以下自定义收藏:
[Serializable]
public class BaseCollection<T>: ICollection<T>
{
}
[CollectionDataContract]
[Serializable]
ProductsCollection : BaseCollection<Product>
{
[DataMember]
public int CategoryId {get;set;}
}
现在,我使用WCF转让ProductsCollection
实例......问题是,WCF不正确地传递我的自定义属性类别编号。它始终为0(int的缺省值)。
在http://msdn.microsoft.com/en-us/library/aa347850.aspx他们说CollectionDataContract
应该解决它,集合将被序列化到我的特定集合,而不是ArrayOfProduct。
难道我失去了一些东西?
如果不可能DataContract序列化,是有可能写出某种MyCustomContract串行对我的具体类,将serialiaze /根据需要反序列化我的收藏?
感谢
嗯...这意味着我必须建立我的“收藏”,并非来自继承ICollectionOfT有没有别的解决办法?是否有可能为我的特定类编写某种MyCustomContract序列化器,以便根据需要序列化/反序列化我的集合? –
你也可以使用'XmlSerializer',但看起来它也不好。 – metalheart
是的,XmlSerializer不是一个选项。 –