In the example code below, I get this error:
Element TestSerializeDictionary123.Customer.CustomProperties vom Typ System.Collec
You can't (short of doing it all yourself, which is horrible); the xml serializer isn't going to have a clue what to do with object, as it doesn't include type metadata in the wire format. One (hacky) option would be to stream these all as strings for the purposes of serialization, but then you have a lot of extra parsing (etc) code to write.