В этом примере используется StringWriter для хранения сериализованных данных, а вызов ToString() дает фактическое значение string:
Person john = new Person();
XmlSerializer xmlSerializer = new XmlSerializer(typeof(Person));
StringWriter stringWriter = new StringWriter();
xmlSerializer.Serialize(stringWriter, john);
string serializedXML = stringWriter.ToString();
Есть ли более простой/более чистый способ сделать это? Все перегрузки Serialize(), по-видимому, используют Stream или Writer.
ОБНОВЛЕНИЕ: задан аналогичный вопрос о сериализации IEnumerable через метод расширения.