Если нужно часто сериализовать объекты различных классов в строку, то можно добавить следующий метод расширения. Этот способ сократит ваш код сериализации до obj.ToXml(). StringWriter пишет строку в UTF-16. Подмена кодировки позволяет получить строку в UTF-8.