Hello,
I know this thread is a little old, but it covered some things pertaining to exactly what I am trying to do with Visual Studio 2005 via VB.NET.
The problem I am having is that after writing the XML for the first object, the serializer ALWAYS closes that and then creates another top level header, then it writes the rest of the objects' data.
As a test I even modified my program to store only objects of the same type and it did not work, then I put the objects into a collection (arraylist) and serialized the collection but it did the same thing.
Anybody know why this is happening other than to torment me?

Here is an example - in this case both objects of the same type are added to a collection called 'col' and then that collection is serialized:
<?xml version="1.0"?>
<ArrayOfAnyType xmlns:xsi="
http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="
http://www.w3.org/2001/XMLSchema">
<anyType xsi:type="ScreenData">
<ScreenTitle>Main</ScreenTitle>
<IsMain>true</IsMain>
<BackgroundImageFilename>skins\default\TexturedWindowsXP.jpg</BackgroundImageFilename>
<BackgroundMode>Undefined</BackgroundMode>
<Screen_Text />
<Screen_BackgroundImage />
<Screen_BackgroundImageLayout>0</Screen_BackgroundImageLayout>
<Screen_Width>0</Screen_Width>
<Screen_Height>0</Screen_Height>
</anyType>
</ArrayOfAnyType><?xml version="1.0"?>
<ArrayOfAnyType xmlns:xsi="
http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="
http://www.w3.org/2001/XMLSchema">
<anyType xsi:type="ScreenData">
<ScreenTitle>Main</ScreenTitle>
<IsMain>true</IsMain>
<BackgroundImageFilename>skins\default\TexturedWindowsXP.jpg</BackgroundImageFilename>
<BackgroundMode>Undefined</BackgroundMode>
<Screen_Text />
<Screen_BackgroundImage />
<Screen_BackgroundImageLayout>0</Screen_BackgroundImageLayout>
<Screen_Width>0</Screen_Width>
<Screen_Height>0</Screen_Height>
</anyType>
<anyType xsi:type="ScreenData">
<ScreenTitle>Lighting</ScreenTitle>
<IsMain>false</IsMain>
<BackgroundImageFilename>Skins\Default\TexturedWindowsXP.jpg</BackgroundImageFilename>
<BackgroundMode>Undefined</BackgroundMode>
<Screen_Text />
<Screen_BackgroundImage />
<Screen_BackgroundImageLayout>0</Screen_BackgroundImageLayout>
<Screen_Width>0</Screen_Width>
<Screen_Height>0</Screen_Height>
</anyType>
</ArrayOfAnyType>
Notice how it did the first object, then closed the XML and opened it again and wrote both objects.
If I create another class to hold the objects and add that to the collection, then I only get the two objects that I am expecting, but again it is done with two sets of XML headers.