Атрибут XmlRoot
применяется только к корневому элементу, поэтому он не применяется к TCustomer
при сериализации CustomerList
.
Без реализации вашей собственной сериализации я не думаю, что вы можете изменить TCustomer
на сериализацию как Customer
в классе CustomerList
. Но вы можете сделать что-то вроде этого ...
[Serializable]
[XmlRoot("customerList")]
public class CustomerList
{
[XmlArray("customers")]
[XmlArrayItem("customer")]
public List<TCustomer> Customers { get; set; }
}
Это должно дать вам XML, похожий на:
<customerList>
<customers>
<customer />
<customer />
<customer />
</customers>
</customerList>
Это изменяет ваш CustomerList из общего списка, но позволяет вам контролировать ваши имена.