我有这样的课程
public class Record
{
public Int32 TotalTrail { get; set; }
public TimeSpan MyTimeSpan { get; set; }
public DateTime MyDateTime { get; set; }
}
我有一个List来保存它的对象:
List<Record> _records;
然后,当我想序列化列表时:
serializer.Serialize(stream,_records);
上述行有一个运行时错误:
无法将System.Collections.Generic.List`1 [[SimpleGame.Record,SimpleGame,Version = 1.0.0.0,Culture = neutral,PublicKeyToken = null]]类型的对象分配给SimpleGame.Record类型的对象。< / p>
是因为我无法序列化列表吗?我该如何解决这个问题?
答案 0 :(得分:5)
您必须为List<Record>
类型而不是Record
答案 1 :(得分:1)
如果要序列化为XML,甚至不需要实现serializable。下面是将任何对象写入文件的快速简便方法:
Dim s As System.Xml.Serialization.XmlSerializer
Using fs As New IO.FileStream(thePath, FileMode.Create, FileAccess.Write, FileShare.Write)
Using w As System.Xml.XmlTextWriter = New System.Xml.XmlTextWriter(fs, System.Text.Encoding.Default)
s = New System.Xml.Serialization.XmlSerializer(GetType(T))
w.Formatting = Xml.Formatting.Indented
s.Serialize(w, m_objectToSerialize)
End Using
End Using
答案 2 :(得分:0)
我认为您需要指定您的对象为Serializable
,以下是示例。
[Serializable()]
public class Record
{
public Int32 TotalTrail { get; set; }
public TimeSpan MyTimeSpan { get; set; }
public DateTime MyDateTime { get; set; }
}
另一个Sol
您可以实施ISerializable
界面
public class Record : ISerializable
{
public Int32 TotalTrail { get; set; }
public TimeSpan MyTimeSpan { get; set; }
public DateTime MyDateTime { get; set; }
}
答案 3 :(得分:0)
让您的课程可序列化...查看此链接。 http://msdn.microsoft.com/en-us/library/4abbf6k0.aspx
答案 4 :(得分:0)
我有同样的问题: 我做的是,我去了你列出的类,并添加了一个无参数的构造函数。我在某处读到序列化与无参数构造函数一起工作。一旦我这样做了。它就像一个魅力!希望它有效.. 像这样的东西
var allowMessage = true;
function sendMessage(msg) {
if (allowMessage) {
//do something
allowMessage = false;
setTimeout(() => allowMessage = true, 1000);
}
}