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