Как сериализовать список <T>в Silverlight? - PullRequest
3 голосов
/ 21 апреля 2010

У меня есть структура с именем координата, которая содержится в списке в другом классе, называемом сегментом.

public struct Coordinate
{
    public double Latitude { get; set; }
    public double Longtitude { get; set; }
    public double Altitude { get; set; }
    public DateTime Time { get; set; }
}

public class Segment
{
    private List<Coordinate> coordinates;
    ...
}

Я хотел бы сериализовать класс Segment, используя XmlSerializer, используя Silverlight (в Windows Phone 7). Из текста ссылки я понимаю, что XmlSerializer не поддерживает List<T>. Каков рекомендуемый способ сериализации координат массива с изменяемым размером?

Спасибо, Юрген

Ответы [ 3 ]

2 голосов
/ 21 апреля 2010

Я всегда предпочитаю DataContractSerializer, а не XmlSerializer. XmlSerializer недоступен в vanilla Silverlight, но DataContractSerializer имеет значение.

Не будет проблем с сериализацией ваших структур, которые вы показали.

1 голос
/ 21 апреля 2010

Вы пробовали это? Какой бит конкретно предлагает отсутствие списков?

Для информации, как только я соберу все инструменты вместе (VS2010 / Phone 7 SDK и т. Д.), Я планирую посмотреть, что protobuf-net может сделать для Phone 7, но XmlSerializer должно быть твердым значением по умолчанию.

0 голосов
/ 21 апреля 2010

Я считаю, что всегда следует разрабатывать свои собственные форматы сериализации. В наши дни это мнение меньшинства.

Вы никогда не знаете, какой сериализатор становится форматом файла, и вы действительно не хотите, чтобы умение читать ваши форматы файлов зависит от .NET Framework.

...