Я знал, что кто-то упомянет публику, поэтому прыгну сюда:
Да, они должны быть публичными, но это не единственная проблема. На самом деле выполнение сериализации не работает (получает описанную ошибку)
Это не нравится список
[XmlRoot("Foo")]
public class Foo
{
[XmlElement("name")]
public string name;
}
[XmlRoot("FooContainer")]
public class FooContainer
{
[XmlElement("container")]
public List<SerializableList<Foo>> lst { get; set; }
}
[XmlRoot("list")]
public class SerializableList<T>
{
[XmlElement("items")]
public List<T> lst { get; set; }
}