This is a common question, please see this post:
http://stackoverflow.com/questions/420662/can-an-internal-setter-of-a-property-be-serialized
The DataContractSerializer
will let you serialize any members you want. As it is an opt-in method of serialization you will need to annotate the class as needed.
Edit
After re-reading your question, DataContractSerializer
may work but that may not be what you want to do. The XMLSerializer will work with InternalsVisibleTo
as it will be able to see those members but I would recommend that you look at DataContractSerializer
as it is (in my opinion) a better serializer.