我有一个包含多个通用列表的值对象:
public IList<SomeClass> MyList { get; set; }
// ...
现在我无法将其序列化以使其与Web服务一起使用。我怎么能这样做?
谢谢: - )
答案 0 :(得分:1)
如果您无法更改现有对象,那么您的主要选项是使用与现有对象类似的DTO,但其具有您正在使用的序列化程序的属性/行为(用于asmx的XmlSerializer,默认情况下为svc的DataContractSerializer可以处理。例如,它将具有:
public List<SomeClass> MyList {get;set;}
甚至:
public List<SomeClassDto> MyList {get;set;}
您可以使用AutoMapper在这些表示之间进行映射,也可以手动执行。
如果您正在使用WCF,您也可以在运行时交换序列化程序以支持基于接口的通用列表,如IList<T>