Это должно быть после загрузки.
Обработайте имя файла, которое вы хотите здесь:
$a=$this->upload->data();
rename($a['full_path'],$a['file_path'].'file_name_you_want');
Для писателя вы можете просто создать XmlSerializer для MySerializableType, а затем сериализовать список через него своему писателю.
void IXmlSerializable.WriteXml(System.Xml.XmlWriter writer)
{
// write xml decl and root elts here
var s = new XmlSerializer(typeof(MySerializableType));
s.Serialize(writer, MyList);
// continue writing other elts to writer here
}
Есть аналогичный подход для читателя. РЕДАКТИРОВАТЬ : чтобы прочитать только список и прекратить чтение после того, как список будет завершен, но до конца потока, вам необходимо использовать ReadSubTree (кредит Марк Гравелл).