Advertisement
Advertisement
| 06.03.2008 at 01:40AM PDT, ID: 23452417 |
|
[x]
Attachment Details
|
||
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45: 46: 47: 48: 49: 50: 51: 52: 53: 54: 55: 56: 57: 58: 59: 60: 61: 62: 63: 64: 65: 66: 67: 68: 69: |
Module Module1
Sub Main()
Dim bmw As New Car
bmw.Tyres = New List(Of ITyre)
Dim t As ITyre
t = New BigTyre
t.Size = 14
bmw.Tyres.Add(t)
t = New BigTyre
t.Size = 15
bmw.Tyres.Add(t)
Dim mem As New IO.MemoryStream
Console.WriteLine("Here comes an exception that says, that tyre is not serializable because it is an interface")
Dim ser As New Xml.Serialization.XmlSerializer(GetType(Car))
ser.Serialize(mem, bmw)
bmw = Nothing
mem.Position = 0
bmw = ser.Deserialize(mem)
Console.WriteLine("The number of tyres should be 2")
Console.WriteLine(bmw.Tyres.Count)
Console.ReadLine()
End Sub
End Module
Public Class Car
Private _tyres As List(Of ITyre)
Public Property Tyres() As List(Of ITyre)
Get
Return _tyres
End Get
Set(ByVal value As List(Of ITyre))
_tyres = value
End Set
End Property
End Class
Public Class BigTyre
Implements ITyre
Private _size As Double
Public Property Size() As Double Implements ITyre.Size
Get
Return _size
End Get
Set(ByVal value As Double)
_size = value
End Set
End Property
End Class
Public Interface ITyre
Property Size() As Double
End Interface
|