Using XmlSerializer to serialize System ValueTypes (bool, int, string, etc.) is fundamentally easy.
What can stump you is how to serialize custom classes -- or better yet, arrays that contain custom classes, when you don't have access to the base classes and therefore can't work with XmlInclude.
Here's how to make it work -- easily.