Рассмотрим следующий код:
[Serializable]
public class Human
{
public string Name { get; set; }
}
Тогда
using (MemoryStream ms = new MemoryStream())
{
Human[] mans = new Human[] {
new Human() { Name = "Moim" }
};
XmlSerializer xs = new XmlSerializer(typeof(Human[]));
xs.Serialize(ms, mans);
string s = System.Text.ASCIIEncoding.ASCII.GetString(ms.ToArray());
}
В этот момент переменная s будет содержать значение типа
<?xml version="1.0"?>
<ArrayOfHuman xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<Human>
<Name>Moim</Name>
</Human>
</ArrayOfHuman>
Теперь все, что мне нужно сделать, это изменить корневой элемент массива xml «ArrayOfHuman» на что-то вроде «MyFavoriteArrayRootName». Я видел интерфейс IXmlSerializable, но он пропускает имя корневого элемента. У кого-нибудь есть идеи, как этого добиться?
Все комментарии будут высоко оценены.
С уважением.