2009-03-04 99 views
0

我有介绍我的应用程序的专业列表是否可以返回对象接口的数组而不是对象?

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。

有没有办法让一个接口可序列化,或者我将不得不将每个对象转换为一个实现该接口的具体类,然后返回该类?

回答

1

我现在没有时间测试它,但在C#中可以扩展接口,所以我想你可以在VB.NET中做到这一点。

只是让IAlphabeticListItem延长ISerializable

+0

要做到这一点就意味着实现GetObjectData使用(BYVAL信息作为System.Runtime.Serialization.SerializationInfo,BYVAL上下文System.Runtime.Serialization.StreamingContext)在其他每个类中实现System.Runtime.Serialization.ISerializable.GetObjectData! – digiguru 2009-03-04 12:52:08

相关问题