C# 如何序列化列表<;T>;在银光中?

C# 如何序列化列表<;T>;在银光中?,c#,silverlight,serialization,xml-serialization,C#,Silverlight,Serialization,Xml Serialization,我有一个名为坐标的结构,它包含在另一个名为segment的类的列表中 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

我有一个名为坐标的结构,它包含在另一个名为segment的类的列表中

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;
    ...
}
公共结构坐标
{
公共双纬度{get;set;}
公共双长度{get;set;}
公共双高度{get;set;}
公共日期时间{get;set;}
}
公共课部分
{
私人名单协调;
...
}
我想使用Silverlight(在WindowsPhone7上)使用XmlSerializer序列化Segment类。据我所知,XmlSerializer不支持
List
。序列化可调整大小的数组坐标的建议方法是什么


谢谢,Jurgen

我认为应该始终设计自己的序列化格式。这几天似乎是少数人的意见


您永远不知道什么序列化程序会变成文件格式,并且您确实不希望能够读取依赖于.NET framework的文件格式。

您尝试过吗?哪一位明确表示没有列表


信息方面,一旦我拥有了所有的工具(VS2010/Phone 7 sdk等),我计划看看protobuf net能为Phone 7做些什么,但是
XmlSerializer
应该是一个可靠的默认值。

我总是更喜欢DataContractSerializer而不是XmlSerializer。XmlSerializer在vanilla Silverlight中不可用,但DataContractSerializer可用


序列化您显示的结构不会有任何问题。

我同意您不希望依赖于框架(因此,如果此平台上存在类似于
BinaryFormatter
的东西,请避免它),但是有很多独立于平台的预滚式序列化API不需要重新发明轮子。在“ArrayList和泛型列表的序列化”页面的中途,XmlSerializer无法序列化或反序列化以下内容:*ArrayList数组*List数组)”@Jurgen—这是说嵌套/锯齿列表不受支持。您的问题与嵌套列表无关。甚至可以简单地在中间添加一个额外的对象(即,你有一个对象的数组,它封装了一些东西的列表;这很好)。对于信息,这是一个常见的限制;protobuf net也坚持这一点(只有少数例外)嗯,是的,我错过了这个。我想知道为什么序列化在Win7电话仿真器上不起作用。将对此进行研究。@Jurgen-查看内部异常
XmlSerializer
通常对问题非常健谈。例如,您是否初始化了坐标?不知道这是否相关,但我在调用反序列化时注意到输出窗口中有一大堆System.FormatException消息。我重新安装了Win7电话工具,现在序列化工作正常。谢谢你的指点!