Я не уверен на 100%, что следую, но, возможно, что-то вроде Backbone.js поможет. Backbone предоставит инфраструктуру MVC, которая позволит легко создавать простые согласованные компоненты на каждом уровне.
Ваш частный сеттер вызывает проблему. Класс XmlSerializer отлично работает с классом, который я привел ниже. Класс XmlSerializer был изобретен до того, как были введены частные сеттеры, поэтому, вероятно, он не проверяет это правильно при сканировании типа класса с использованием отражения. Возможно, вам следует сообщить об этом в Microsoft как об ошибке.
public class MyClass
{
private List<int> _myCollection;
public MyClass()
{
_myCollection = new List<int>();
}
public List<int> MyCollection
{
get
{
return this._myCollection;
}
}
}