.NET XmlSerializer сериализует коллекции в массивы. Я не знаю, есть ли какая-то разница для общих списков, но я сомневаюсь в этом. Поскольку такие SOAP-«коллекции» всегда являются массивами .NET, сгенерированный прокси-сервер должен восстановить массив до нужного типа коллекции (который действительно является его выбором).
Еще одним побочным эффектом сериализации коллекций в массивы является то, что сериализуются только элементы коллекции. Например, приведенный ниже класс наследуется от списка и добавляет новое свойство, которое не будет сериализовано XmlSerializer, поскольку массивы состоят только из элементов, а не дополнительных свойств.
public class MyList : List
{
public string MyProperty{get;set;}
}
Этот бихевиоризм специфичен для XmlSerializer, двоичные сериализаторы (и, возможно, DataContractSerializer WCF) могут обрабатывать эти условия.