<p>At the XmlSerializer constructor line the below causes an InvalidOperationException which also complains about not having a default accesor implemented for the generic type.</p>

<pre><code>Queue&lt;MyData&gt; myDataQueue = new Queue&lt;MyData&gt;();

// Populate the queue here


XmlSerializer mySerializer =
  new XmlSerializer(myDataQueue.GetType());    

StreamWriter myWriter = new StreamWriter("myData.xml");
mySerializer.Serialize(myWriter, myDataQueue);
myWriter.Close();
</code></pre>

It would be easier (and more appropriate IMO) to serialize the
data
from the queue - perhaps in a flat array or
```
List<T>
```
. Since
```
Queue<T>
```
implements
```
IEnumerable<T>
```
, you should be able to use:
```
```
List<T> list = new List<T>(queue);
```
```