.net WCF和自定义集合序列化
我肯定我不是第一个问这个问题的人,但我在SO和谷歌上都没有找到答案 我有以下自定义集合:.net WCF和自定义集合序列化,.net,wcf,serialization,collections,datacontract,.net,Wcf,Serialization,Collections,Datacontract,我肯定我不是第一个问这个问题的人,但我在SO和谷歌上都没有找到答案 我有以下自定义集合: [Serializable] public class BaseCollection<T>: ICollection<T> { } [CollectionDataContract] [Serializable] ProductsCollection : BaseCollection<Product> { [DataMember] public int C
[Serializable]
public class BaseCollection<T>: ICollection<T>
{
}
[CollectionDataContract]
[Serializable]
ProductsCollection : BaseCollection<Product>
{
[DataMember]
public int CategoryId {get;set;}
}
[可序列化]
公共类基类集合:ICollection
{
}
[收集数据合同]
[可序列化]
ProductsCollection:BaseCollection
{
[数据成员]
public int CategoryId{get;set;}
}
现在,我使用WCF传输ProductsCollection
的实例…问题是WCF没有正确传输我的自定义属性CategoryId。它始终为0(默认为int)
他们说,CollectionDataContract
应该解决这个问题,集合将被序列化到我的特定集合,而不是ArrayOfProduct
我是不是错过了什么
如果无法使用DataContract序列化程序,是否可以为我的特定类编写某种MyCustomContract序列化程序,根据需要序列化/反序列化我的集合
谢谢DataContractSerializer(这是WCF的默认设置)只序列化集合项,而不序列化额外的属性
请参阅此解决方案。Hm…这意味着我必须创建我的“集合”,而不是从ICollectionSoft继承,并且没有其他解决方案?是否可以为我的特定类编写某种类型的MyCustomContract序列化程序,根据需要序列化/反序列化我的集合?您也可以使用
XmlSerializer
,但这似乎也不好。是的,XmlSerializer不是一个选项。