I have the following class file...

VB Code:
  1. <Serializable()> Public Class GroupMember
  2.     Public Name As String
  3.     Public ID As String
  4.     Public Random As Double
  5. End Class
  6.  
  7. <Serializable()> Public Class GroupMemberCollection
  8.     Inherits System.Collections.CollectionBase
  9.  
  10.     Public GroupName As String
  11.     Public GroupStatus As String
  12.  
  13.     Public Sub Add(ByVal Member As GroupMember)
  14.         ' Invokes Add method of the List object to add a widget.
  15.         List.Add(Member)
  16.     End Sub
  17.  
  18.     Public Sub Remove(ByVal index As Integer)
  19.         ' Check to see if there is a GroupMember at the supplied index.
  20.         If index > Count - 1 Or index < 0 Then
  21.             ' If no GroupMember exists, a messagebox is shown and the operation is
  22.             ' cancelled.
  23.             System.Windows.Forms.MessageBox.Show("Index not valid!")
  24.         Else
  25.             ' Invokes the RemoveAt method of the List object.
  26.             List.RemoveAt(index)
  27.         End If
  28.     End Sub
  29.  
  30.     Public ReadOnly Property Members(ByVal index As Integer) As GroupMember
  31.         Get
  32.             ' The appropriate item is retrieved from the List object and
  33.             ' explicitly cast to the GroupMember type, then returned to the
  34.             ' caller.
  35.             Return CType(List.Item(index), GroupMember)
  36.         End Get
  37.     End Property
  38. End Class

I am using Serialization to save instances of this class (group files)... My problem is that when it serializes, it only saves the information for the last index of Members within the GroupMembersCollection...

So when I deserialize and try the following loop...

VB Code:
  1. For i = 0 to GroupCollection.Count - 1
  2.    MsgBox(GroupCollection.Members(i).Name)
  3. Next i

I get the last name in the collection over and over and over again.

Can someone help me here?

Thanks,

Squirrelly1