BinaryFormatter
在我的代码中以奇怪的方式表现。我有如下代码
[Serializable]
public class LogEntry
{
private int id;
private List<object> data = new List<object>();
public int Id
{
get { return id; }
}
public IList<object> Data
{
get { return data.AsReadOnly(); }
}
...
}
....
....
private static readonly BinaryFormatter logSerializer = new BinaryFormatter();
....
....
public void SerializeLog(IList<LogEntry> logEntries)
{
using (MemoryStream serializationStream = new MemoryStream())
{
logSerializer.Serialize(serializationStream, logEntries);
this.binarySerializedLog = serializationStream.GetBuffer();
}
}
在某些机器(32 位或 64 位机器)中,它以二进制格式序列化 - 这是预期的。但是在某些机器上(它们都是 64 位机器,不用于调试版本)它没有序列化,binarySerializedLog
而是显示ToString()
所有个体的值Data
、类名 ( ...LogEntry
) 和id
值。我的问题是——这种行为有具体原因还是我做错了什么?提前致谢。