XmlSerializer xmlSerializer = new XmlSerializer(toSerialize.GetType());
using(StringWriter textWriter = new StringWriter())
{
xmlSerializer.Serialize(textWriter, toSerialize);
return textWriter.ToString();
}
StringWriter наследует TextWriter, а он в свою очередь MarshalByRefObject.
Метод Serialize первым параметром принимает Stream, а StringWriter таковым не является.
Почему тогда код работает?