Я не думаю, что двоичная сериализация доступна для Zune и XBox, но XmlSerializer отлично работает для меня. У меня нет проблем с сериализацией коллекций, но вы должны использовать атрибут XmlArrayItem для нетипизированных коллекций, таких как ArrayList, или передавать дополнительную информацию о типе в конструктор XmlSerializer, но в настоящее время использовать List лучше и проще. Словарь не может быть сериализован, но вы можете создать класс-оболочку для этого. Я обычно храню уникальный идентификатор для каждого элемента, который затем можно использовать в качестве ключа в словаре.
Затем я могу создать класс, который обернет словарь, но будет представлен как набор элементов.
public class MyItem {
public string ID { get; set; }
:
}
public class MyList : ICollection<MyItem> {
private Dictionary<string,MyItem> items;
public MyList() {
items = new Dictionary<string, MyItem>();
}
void Add(MyItem item) {
items.Add(item.ID, item);
}
:
}