将DataMember传播到子类

时间:2017-07-10 19:30:26

标签: vb.net serialization subclass

我有两个可序列化的类,其中第一个类Main包含成员IdDetails是第二个类Detail的枚举。

例如

<DataContract()>
Class [Main]
    <DataMember(Name:="id")>
    Property [Id] As Integer = 0
    <DataMember(Name:="details")>
    Property [Details] As IEnumerable(Of [Detail]) = Nothing
End Class

<DataContract()>
Class [Detail]
    <DataMember(Name:="name")>
    Property [Name] As String = Nothing
    <DataMember(Name:="dob")>
    Property [BirthDate] As Date? = Nothing
End Class

(这是一个非常简化的例子,所以请不要问为什么我想这样做。)

我最终想要的只是DetailsDetail的集合,但是包含来自父Id的{​​{1}}属性。< / p>

所以......

Main

现在,我知道我可以简单地遍历结果并将Id = 1, Name = "John Smith", BirthDate = #1/1/1990# Id = 1, Name = "Jane Jones", BirthDate = #2/2/1990# Id = 2, Name = "Jim Hicks", BirthDate = #3/3/1990# Id = 3, Name = "Jana Walsh", BirthDate = #4/4/1990# Id = 3, Name = "Jason Brown", BirthDate = #5/5/1990# Id对象复制到Main对象。但有没有办法通过序列化过程将Detail添加到Id个对象? (对不起,如果我有一些命名错误,这里重新序列化,等等。)

注意:我不能 - 或者不想 - 让Detail成为Detail的子类,因为Main会在其他类中重复使用。

0 个答案:

没有答案