You may want to look at how you can use the built-in futures of .NET to serialize and deserilize an object into XML, rather than creating ToXML() method on every class that essentially just Data Transfer Object.
I have used these techniques successfully on a couple of projects but don’t have the implementation details handy right now. I will try to update my answer with my own examples sometime later.
Here's a couple of examples that Google returned:
XML Serialization in .NET by Venkat Subramaniam http://www.agiledeveloper.com/articles/XMLSerialization.pdf
How...