Размещение XmlRootAttribute при десериализации в List

У меня есть следующий XML

<?xml version="1.0" encoding="UTF-16" standalone="no"?>
<Sites>
  <Site>
    <Code>TWTR</Code>
    <Name>twitter.com</Name>
  </Site>
  <Site>
    <Code>FB</Code>
    <Name>facebook.com</Name>
  </Site>
  <Site>
    <Code>SO</Code>
    <Name>stackoverflow.com</Name>
  </Site>
</Sites>

Это код:

public class Program
{
    static void Main(string[] args)
    {
        var fs = new FileStream(@"D:\temp\Sites.xml", FileMode.Open);
        var serializer = new XmlSerializer(typeof(List<Site>));
        var instance = (List<Site>)serializer.Deserialize(fs);
    }
}

[XmlRoot("Sites")]
public class Site
{
    public string Code { get; set; }
    public string Name { get; set; }
}

Исключение, которое я получаю:<Sites xmlns=''> was not expected., Причиной этой ошибки обычно является то, что я не определяю XmlRoot дляXmlSerializer, Но, как вы можете видеть, я сделал это, украсив классSite сXmlRootAttribute

Чтобы завершить мое замешательство, работает следующий трюк:

замещать

var serializer = new XmlSerializer(typeof(List<Site>));

с участием

var serializer = new XmlSerializer(typeof(List<Site>), new XmlRootAttribute("Sites"));

Я что-то пропустил?

Ответы на вопрос(2)

Ваш ответ на вопрос