Вот что я получил на работу. Спасибо comptent_tech и dthorpe за помощь. Я создал свой DTO так:
[XmlType("Object", Namespace = "", TypeName = "Object")]
public class dtoObject : CommonBase
{
[XmlArray("SomeItems"), XmlArrayItem("SomeItem")]
public List<dtoSomeItem> SomeItems
{
get { return _SomeItems; }
set { _SomeItems = value; }
}
}
Моя функция, которая выполняет сериализацию, такова:
public string ToXML(List<dtoObject> oObject)
{
XmlDocument xmlDoc = new XmlDocument();
XmlSerializer xmlSerializer = new XmlSerializer(oObject.GetType(), new XmlRootAttribute("Objects"));
XmlSerializerNamespaces ns = new XmlSerializerNamespaces();
ns.Add("", "");
using (MemoryStream xmlStream = new MemoryStream())
{
xmlSerializer.Serialize(xmlStream, oObject, ns);
xmlStream.Position = 0;
xmlDoc.Load(xmlStream);
return xmlDoc.InnerXml;
}
}
При этом создается формат xml:
<?xml version="1.0"?>
<Objects>
<Object>
<SomeItems>
<SomeItem>
</SomeItem>
</SomeItems>
</Object>
<Objects>