我有一个界面,用于描述我的应用程序中的专用列表...
Public Interface IAlphabeticListItem
Property StartingLetter() As String
Property DetailsList() As Generic.List(Of DetailsData)
End Interface
多个对象实现了这个接口,但是我希望在Web服务中将它们作为底层对象返回,而不是作为接口。
<WebMethod()> _
Public Function GetCategoryList(...) As Generic.List(Of IAlphabeticListItem)
...
End Function
可悲的是,这会导致异常
无法序列化接口IAlphabeticListItem。
异常详细信息:System.NotSupportedException:无法序列化接口IAlphabeticListItem。
有没有办法使接口可序列化,或者我是否必须将每个对象转换为实现接口的具体类,然后返回该类?
答案 0 :(得分:1)
我现在没时间测试它,但是在C#中你可以扩展接口,所以我想你可以在VB.NET中做到这一点。
让IAlphabeticListItem扩展ISerializable
答案 1 :(得分:1)
是和否。您不能直接公开XML序列化的泛型类,因为它不受支持。但是,您可以在同一个集合上公开非泛型接口并对其进行序列化。这篇博客详细介绍了如何开展这项工作