使用包含通用IList和Web服务的值对象?

时间:2011-03-22 09:24:40

标签: c# web-services serialization

我有一个包含多个通用列表的值对象:

public IList<SomeClass> MyList { get; set; }
// ...

现在我无法将其序列化以使其与Web服务一起使用。我怎么能这样做?

谢谢: - )

1 个答案:

答案 0 :(得分:1)

如果您无法更改现有对象,那么您的主要选项是使用与现有对象类似的DTO,但其具有您正在使用的序列化程序的属性/行为(用于asmx的XmlSerializer,默认情况下为svc的DataContractSerializer可以处理。例如,它将具有:

public List<SomeClass> MyList {get;set;}

甚至:

public List<SomeClassDto> MyList {get;set;}

您可以使用AutoMapper在这些表示之间进行映射,也可以手动执行。

如果您正在使用WCF,您也可以在运行时交换序列化程序以支持基于接口的通用列表,如IList<T>