首先感谢你花在阅读这个问题上的时间。我的问题是以下我有4个班级
[Serializable]
class Base
{
protected int x;
protected int y;
protected int z;
}
[Serializable]
class Sub : Base
{
private bool b;
}
[Serializable]
class CompareByX : Comparer<Sub>
{
...
}
[Serializable]
class CustomObject
{
Base s1 = new HashSet<Base>();
SortedSet<Sub> s2 = new SortedSet<Sub>(new CompareByX());
int x;
}
class CustomObjectManager
{
HashSet<CustomObject> cos1 = new HashSet<CustomObject>();
}
嗯,我想我发现了那么多但是这种方式序列化和反序列化会让我序列化的计数信息与项目数量不匹配异常让我感到困惑。好的,我自己修好了。无论如何,谢谢你的帮助。注意[NotSerialized]是继承的。
BinaryFormatter bf = new BinaryFormatter();
bf.Serialize(FileStream, cos1);
BinaryFormatter bFormatter = new BinaryFormatter();
CustomObject[] bData = (HashSet<CustomObject>)bFormatter.Deserialize(fs);