自定义序列化继承列表

时间:2012-10-17 11:20:59

标签: c# vb.net inheritance xml-serialization

如果我有一个继承自泛型列表的基类,并且派生类需要使用列表条目的自定义名称进行序列化,如何输入正确的serializartion属性和/或引用基本列表?< / p>

Public MustInherit Class SpecialList(Of T)
   Inherits List(Of T)
   'Other methods here
End Class

Public Class Cache
   Inherits SpecialList(Of CacheEntry)

   <XmlElementAttribute("CustomName")> _
   Public Property Entries() As List(Of CacheEntry)
      Get
         Return ???
      End Get
      Set(value As List(Of CacheEntry))
         ??? = value
      End Set
   End Property
End Class

如果没有覆盖基类方法,编写自定义序列化或实现IXmlSerializable,这实际上是否可行?

我希望得到这样的输出XML:

<cache>
    <customname></customname>
    <customname></customname>
</cache>

1 个答案:

答案 0 :(得分:0)

XmlRootAttribute添加到CacheEntry

<XmlRootAttribute(ElementName:="customname")>
Public Class CacheEntry

作为一个附带问题,如果Cache继承自List(通过SpecialList),那么为什么你的Entries属性也是List 1}?